Выполните приведенные ниже операции сложения, полагая, что строки битов представляют...

0 голосов
46 просмотров

Выполните приведенные ниже операции сложения, полагая, что строки битов представляют числа в двоичном дополнительном коде. Укажите, когда полученный результат будет ошибочным из-за переполнения


image

Информатика (12 баллов) | 46 просмотров
Дан 1 ответ
0 голосов

Сложение чисел, представленных в двоичном коде, выполняется поразрядно, начиная с младшего разряда. В результате сложения двух первых кодов слагаемых Xo, Yo получается первый разряд суммы Sо и код переноса Pо в следующий разряд. В следующих разрядах код Si будет определяться с учетом переноса из соседнего младшего разряда:
  7 0111 5 0101+ ── + ─────      12 1100
Операция Вычитания в ЭВМ выполняется, так же как и сложение, но при этом отрицательные числа представляются в дополнительном или обратном коде. Смысл перевода отрицательных чисел из прямого в дополнительный и обратный коды поясним на примере с десятичными числами.Допустим, требуется сложить числа X1=76 и X2=-58. Заменим код отрицательного слагаемого X2 его дополнением до 100, так чтобы [X2] доп=100+X2=42. Сложив числа X1+[X2] доп получим: Y=X1+[X2] доп=76+42=118.Отбрасывая 1 старшего разряда получим искомый результат 18. Равенство полученного результата истинному объясняется тем, что при формировании дополнительного кода к X2 мы прибавляли 100, а из результата вычитали 100 отбрасыванием старшего разряда.
Y=X1+[X2] доп-100=X1+[X2+100] – 100=76+[-58+100] – 100=18.
При записи двоичного числа в прямом коде в знаковом разряде ставится его знак (0 – плюс, 1 – минус), а само число записывается в естественной форме:
X=13 [X] пр=0110110 2X=-13 [X] пр=1110110 2
Дополнительный код отрицательных двоичных чисел получается заменой двоичных кодов во всех разрядах на взаимно обратные (0 на 1, 1 на 0). После этого к младшему разряду числа добавляется 1. В знаковом разряде отрицательного числа записывается 1.
[-14] доп=[-01110] доп=[10001+1]=10010
Кроме дополнительного кода для представления отрицательных чисел используется обратный код. В этом случае в знаковом разряде записывается 1, а в остальных разрядах цифры заменяются на взаимно обратные
[-14] обр=[-01110] обр=10001
При выполнении арифметических операций с отрицательными числами производится поразрядное сложение слагаемых, начиная с младшего и кончая знаковым разрядом. Если используется дополнительный код, то возможная единица переноса из знакового, разряда отбрасывается, при использовании обратного кода единица переноса знакового разряда суммируется с младшим разрядом полученной суммы. Результат вычисления получается в том коде, в каком были представлены слагаемые. Положительные числа в прямом, обратном и дополнительном кодах имеют одну и ту же форму записи.

(132 баллов)