Файл: Архаров В.И. Арифметические и логические основы цифровых вычислительных машин учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.07.2024
Просмотров: 90
Скачиваний: 1
Пример 16.
* = 0,11101 = —
32
и= 0,00111 = —
у__________32
*+ у = 1,00100
Если * < 0 , у < 0, |* |
+ |
у \ > 1 , |
то признаком переполнения яв |
|
ляется наличие цифры 0 в знаковом разряде. |
|
|||
Пример 17. |
|
|
|
|
* = -0 ,1 0 0 0 1 = |
— |
, |
[*]доп= 1,01111 = — -Ц- |
|
у = -0,10011 = |
|
|
[r/W = 1,01101 = — § |
|
|
|
и |
+ г/]Доп = 0,11100 |
|
Пример 18. |
|
|
|
|
* = - 0 ,1 0 1 0 1 = — ^ |
[*]овр= |
1.01010 |
||
|
|
oZ |
|
|
У= —0,01101 = — |
[у]обр= 1,10010 |
|||
|
|
|
|
10,11100 |
|
|
|
[*-f-(/Jogp = |
0,11101 |
Сравнивая цифру в знаковом разряде суммы с цифрами знако вых разрядов слагаемых, можно установить, есть переполнение разрядной сетки или нет. Признаком переполнения является от личие цифры знакового разряда суммы от цифры знаковых разря дов слагаемых.
Указанный способ сложен, так как требует запоминания знаков слагаемых и сравнение их со знаковым разрядом суммы.
При переполнении разрядной сетки модуль суммы удовлетво ряет неравенству
1 < \ х + у \ < 2 .
Это обстоятельство облегчает построение кодов, по виду кото рых можно определить переполнение разрядной сетки. Для этой цели в ЦВМ применяют модифицированные дополнительный и об ратный коды. В модифицированных кодах для изображения знака используются два знаковых разряда: положительные числа изобра жаются кодом 00, . . . , отрицательные числа — кодом ,1 1 ,...........
42
Модифицированный дополнительный код
Если х — правильная двоичная дробь, положительная или от рицательная, то модифицированным дополнительным кодом числа
называют число [x]“on, получаемое по формуле
|
|
( |
х, |
если |
х ^ О , |
|
|
|
Мдоп = { шо + л:, |
если |
х < 0 , |
(2Л9^ |
|
где |
100 |
означает число 4. |
отрицательного числа |
используется |
||
|
Для |
изображения знака |
||||
код |
11, |
, поэтому в цифровых разрядах изображения отрица |
||||
тельного числа записан код, |
равный |
|
|
|
100—0 1 1 + х = 1 —|* |,
т. е. дополнению абсолютного значения отрицательного числа до единицы.
Если х = -f 0, хгх2 . . . хп, то
[х]*оп=00, Xlx2 . . . хп. |
(2.20) |
Если х = —0, х±х2 . . . хп, то
Мдоп= 1 1 * ^ 2 • • • *«+ 10“ n, |
(2-21) |
т. е. для получения модифицированного дополнительного кода от рицательного числа необходимо в знаковых разрядах поставить код 11, в дробной части нули заменить единицами, а единицы ну лями и к младшему разряду полученного числа добавить единицу. Доказательство формулы (2.21) соответствует доказательству фор мулы (2.9) для обычного дополнительного кода.
Сложение чисел в модифицированном дополнительном коде про изводится так же, как и в обычных кодах. При возникновении еди ницы переноса левее двух знаковых разрядов ее необходимо отбра сывать. Окончательный результат суммирования будет в прямом коде, если сумма положительна, и в модифицированном дополни тельном коде, если сумма отрицательна.
Пример |
19. |
|
|
|
|
|
|
|
X= 0,1100001 = |
97 |
|
[< о п = |
00,110001 = |
97 |
|||
128 |
|
128 |
||||||
|
|
|
|
|
||||
|
|
|
|
|
|
|||
|
-0 ,1 0 0 0 0 0 1 = |
65 |
|
|
11,011111 = - |
63 |
||
у = ■ |
128 |
|
и С п = |
|
|
128 |
||
|
|
|
|
|
||||
х-\г у = |
0,0100000 = |
1 |
[* + |
< о п = 100,010000 = |
1 |
|||
4 |
4 |
|||||||
|
|
|
|
|
|
|||
|
|
|
1Х+ |
У]доп = |
00,01 |
= |
J _ |
|
|
|
|
4 |
|||||
|
|
|
|
|
||||
|
|
|
|
|
|
|
Положительный знак суммы свидетельствует о том, что алге браическая сумма получилась в прямом модифицированном коде.
Пример 20. |
|
|
|
* = -0,0111101 = - |
^ |
м ;„ „ = 11,1000011 = —g |
|
У = -0,0001011 = - |
Я |
[» С 0= |
11,1110101 = - ' Я |
х-{-у = — 0,1001000=---- -- |
и + г/]д0П= |
11Ь0111000 = |
|
|
16 |
|
7 |
|
|
= |
11,0111 = ------- - |
|
|
|
16 |
Отрицательный знак суммы говорит о том, что алгебраическая сумма получилась в модифицированном дополнительном коде.
Как видим из приведенных примеров, признаком отсутствия переполнения разрядной сетки является совпадение цифр в знако вых разрядах двоек и единиц, т. е. комбинация цифр 00 и 11. При знаком переполнения является несовпадение цифр в знаковых раз рядах двоек и единиц, т. е. комбинации 10 и 01, причем комбина ция 01 свидетельствует о переполнении при сложении положитель ных чисел, а комбинация 10 — отрицательных.
Пример 21. |
|
|
|
х = 0,0100001 = |
_33 |
[х)м |
=00,0100001 = — |
|
128 |
доп |
128 |
«/= 0,1100101 = |
101 |
1у]”оп = 00,1100101 = 101 |
|
|
128 |
1х +у £ |
128 |
Х ~\~У |
|
: 01,0000110 |
Комбинация 01 в знаковых разрядах свидетельствует о пере полнении разрядной сетки при сложении положительных чисел.
Пример 22.
99
х = —0,1100011 =
128
69
г/ = —0,1000101 =
128
I Х ~\~У| |
> 1 |
[ < пп = |
ОО |
о |
II |
29 |
|
128 |
|||||
|
|
|
|
||
г тМ |
|
|
|
_ 59 |
|
[у]л^ == 11,0111011 = |
128 |
||||
|
|
|
|
[* + i C = 110,1011000 =
=10,1011
Комбинация 10 в знаковых разрядах свидетельствует о переполне нии разрядной сетки при сложении отрицательных чисел.
Для автоматической сигнализации о переполнении разрядной сетки достаточно сравнить цифры в двух знаковых разрядах.
44
Модифицированный обратный код
Если х — правильная двоичная дробь, положительная или от рицательная, то модифицированным обратным кодом называют код
[л;]обр, получаемый по следующей формуле:
м |
| |
х, |
если |
х + |
О, |
^°бр |
( 100— 10~" + х, |
если |
х + |
(2. 22) |
|
0, |
где п — число разрядов дробной части, 100 — изображает число 4.
Если х = 0, хгх2х3 . . . хп, то
1*С$р = 00’ *1 *2 *3 • • • *„•
Если х — —0, XiX2x3 . . . хп, то
1*10бр = 11. ^1 х2х3 . . . хп, |
(2.23) |
т. е. для получения модифицированного обратного кода отрицатель ного числа необходимо в знаковых разрядах поставить код 11, а в дробной части нули заменить единицами, а единицы — нулями.
Доказательство формулы (2.22) аналогично доказательству фор мулы (2.17) для обычного обратного кода. Суммирование чисел в мо дифицированном обратном коде аналогично суммированию в обыч ном обратном коде. При появлении единицы переноса левее знако вых разрядов ее необходимо прибавить к младшему разряду резуль тата, т. е. осуществить циклический перенос. Результат суммиро вания получится в модифицированном прямом коде, если сумма положительна, и в модифицированном обратном коде, если сумма отрицательна.
Пример 23.
х = +0,1001001 = |
— |
|
[ < бр= |
00,1001001 |
|
|
|
128 |
|
|
|
у = — 0,0001111 = —— |
|
[ < бр= |
11,1110000 |
||
* |
_________ |
128 |
|
|
|
х + г/ = +0,0111010= + — |
[* + |
< б Р = |
100-0 1 11001 |
||
|
|
|
|||
|
|
|
___________1-.... -> 1 |
||
|
|
|
Iх +у ]"бр= |
0 0 ,0 1110 10 = + Ц - |
Положительный знак суммы свидетельствует о том, что алге браическая сумма получилась в модифицированном прямом коде.
45
Пример 24.
х — --0,0011111 |
= |
— — |
1 < бр = |
11,1100000 |
|
|
128 |
|
|
У= --0,0101101 |
= —— |
[ < 6 р = |
11,1010010 |
|
|
|
128 |
|
|
х + у = - -0,1001100 = |
— - |
|
111,0110010 |
|
|
|
32 |
|
|
|
|
|
[х + у]ыобр= |
11,0110011 |
Отрицательный знак суммы свидетельствует о том, что алгебраи ческая сумма получилась в модифицированном обратном коде.
Пример 25.
* = 0,1010001 = — |
М “б =00,1010001 |
||
|
128 |
" |
|
у = 0,0110001 = i i |
Л р = |
00,0110001 |
|
|
128 |
____________________ |
|
Х+ У |
> Г “ |
[* + < бр = |
01,0000010 |
Комбинация 01 в знаковых разрядах свидетельствует о пере полнении разрядной сетки при сложении положительных чисел.
Пример 26.
* = —0,1111001 = |
— 1 | |
[ < бр = |
11,0000110 |
|
У= —0,0010001 = |
—^ |
[ < бр = |
11,1101110 |
|
\х + у\ |
> 1 |
|
110,1110100 |
|
|
|
__________ 1 |
- 1 |
|
|
|
[ х + у ]0ибр= |
10,1110101 |
Комбинация цифр 10 в знаковом разряде свидетельствует о переполнении разрядной сетки при сложении отрицательных чисел.