Составители:
30
5.3. Арифметические действия над отрицательными числами,
представленными в обратном или дополнительном коде
Арифметические действия выполняются по правилам двоичной
арифметики. Операция вычитания заменяется операцией сложения с
отрицательными числами. Положительные числа при этом представляются в
прямом коде, а отрицательные – в обратном или дополнительном коде (в
зависимости от того, в какой форме выполняет операции АЛУ).
Знаковый разряд участвует в операциях вместе с числовыми разрядами.
Единица переноса
из знакового разряда (если таковая возникнет) при
сложении в дополнительном коде отбрасывается или прибавляется к
младшему числовому разряду при сложении в обратном коде. Если результат
положителен – он представлен в прямом коде и не требует никаких
преобразований. Если результат отрицателен, то он представлен в обратном
или дополнительном коде в зависимости от
того, в каком коде происходило
сложение. Результат в таком случае преобразуется в прямой код.
Пусть разрядная сетка – 8 бит, тогда рассмотрим примеры.
Пример 7.3.1. Сложить в обратном коде числа –34 и +15.
+15 = +1111
2
=0 0001111
-34 = -(100010
2
).
Преобразуем отрицательное слагаемое в обратный код.
-34 = -(0100010
пр
) =1 1011101
обр
.
Складываем слагаемые, в результате имеем: 1 1101100
обр
.
Единица переноса не образована. Судя по знаку (1), результат
отрицателен, значит, представлен в обратном коде (поскольку сложение
выполнялось в этом коде) и требует перевода в прямой код: 1 0010011
пр
.
Таким образом, получено число –10011
2
. Для проверки правильности
результата представим его в десятичной с.с.. Имеем: -10011
2
= -19, что
соответствует правильному результату.
5.3. Арифметические действия над отрицательными числами,
представленными в обратном или дополнительном коде
Арифметические действия выполняются по правилам двоичной
арифметики. Операция вычитания заменяется операцией сложения с
отрицательными числами. Положительные числа при этом представляются в
прямом коде, а отрицательные – в обратном или дополнительном коде (в
зависимости от того, в какой форме выполняет операции АЛУ).
Знаковый разряд участвует в операциях вместе с числовыми разрядами.
Единица переноса из знакового разряда (если таковая возникнет) при
сложении в дополнительном коде отбрасывается или прибавляется к
младшему числовому разряду при сложении в обратном коде. Если результат
положителен – он представлен в прямом коде и не требует никаких
преобразований. Если результат отрицателен, то он представлен в обратном
или дополнительном коде в зависимости от того, в каком коде происходило
сложение. Результат в таком случае преобразуется в прямой код.
Пусть разрядная сетка – 8 бит, тогда рассмотрим примеры.
Пример 7.3.1. Сложить в обратном коде числа –34 и +15.
+15 = +11112=0 0001111
-34 = -(1000102).
Преобразуем отрицательное слагаемое в обратный код.
-34 = -(0100010пр) =1 1011101обр.
Складываем слагаемые, в результате имеем: 1 1101100обр.
Единица переноса не образована. Судя по знаку (1), результат
отрицателен, значит, представлен в обратном коде (поскольку сложение
выполнялось в этом коде) и требует перевода в прямой код: 1 0010011пр.
Таким образом, получено число –100112. Для проверки правильности
результата представим его в десятичной с.с.. Имеем: -100112 = -19, что
соответствует правильному результату.
30
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »
