Читайте также:
|
|
Обратные коды чисел складываются поразрядно, причем знаковые разряды складываются как разряды мантисс. Если в результате сложения кодов в знаковом разряде возникает единица переноса, она прибавляется к младшему разряду суммы кодов (эта операция называется циклическим переносом). При обратном коде дополнение числа берется до единицы.
При сложении обратных кодов могут встретиться следующие четыре случая:
1. Х>0, У>0, X+У>0
Этот случай не отображает особенностей обратного кода, т.к. числа положительны, а для положительных чисел обратный код совпадает с прямым.
2. Х >0, У< О, X+У<0
Рассмотрим пример и будем складывать числа в прямом и обратном кодах и сравнивать результат с ручным счетом.
Ручной счет: Сложение в обратном коде на машине:
Х= 0,001001 [X]обр=0,001001
У= –0,110001 [У]обр=1,001110
Х+У= –0,101000 [Х+У]обр=1,010111
Результат получился в обратном коде, т.к. сумма отрицательна. Переведем ее в прямой код:
[1,010111]обр → [1,101000]пр → –0,101000
Результат совпадает с ручным счетом. В данном случае циклический перенос не образуется.
3. Х > 0; У < 0; Х + У > 0
Ручной счет: Сложение на машине:
Х= 0,110001 [X]обр=0,110001
У= –0,001001 [У]обр=1,110110
Х+У=0,101000 [Х+У]обр= 1 0,100111
1
[Х+У]обр=0,101000=[Х+У]пр
Результат совпадает с ручным счетом. Здесь образуется циклический перенос. Единица переноса, получившаяся в знаковом разряде, прибавляется к младшему разряду суммы обратных кодов.
4. Х < 0; У < 0; Х + У < 0
Ручной счет: Сложение на машине:
Х= –0,110001 [X]обр=1,001110
У= –0,001001 [У]обр=1,110110
Х+У= –0,111010 [Х+У]обр= 1 1,000100
1
[Х+У]обр=1,000101
Результат получился в обратном коде. Переведем его в прямой код.
[1,000101]обр → [1,111010]пр → –0,111010
Что совпадает с ручным счетом.
Дата добавления: 2015-02-16; просмотров: 98 | Поможем написать вашу работу | Нарушение авторских прав |