Page 24 - ЭВМ
P. 24
3. При дополнительном кодировании диапазон отрицательных
n
чисел расширен на одно число: отрицательное число (–2 ) имеет
код 10…0.
Сложение чисел, представленных в дополнительном коде. Пусть
z = х + y. Рассмотрим 4 случая:
1. Первый случай – x ≥ 0 и y ≥ 0. Для положительных чисел до-
полнительное кодирование совпадает с прямым кодированием:
z = + = |x| + |y|.
х
y
При этом работает обычное правило сложения. Переполнение
n
разрядной сетки отсутствует, если значащая часть результата |z| < 2 .
Переполнение разрядной сетки присутствует, если значащая часть ре-
n
зультата |z| ≥ 2 . Значения знаковых разрядов x и y равны 0.
Поэтому правило определения наличия или отсутствия перепол-
нения разрядной сетки имеет следующую формулировку: переполне-
ние разрядной сетки отсутствует, если нет переносов в знаковый раз-
ряд и из знакового разряда; переполнение разрядной сетки присутст-
вует, если есть перенос в знаковый разряд, а из знакового разряда нет
переноса.
Например: для n = 4
x = 7 00101
y = 5 00111
01100
2. Второй случай – x ≥ |0 и y < 0. По определению дополнительного
n
кодирования для значащей части кода имеем: z = + = |x| + 2 – |y| =
y
х
n
а) |x| ≥ |y|, 2 + (|x| + |y|);
n
б) |x| > |y|, 2 – (|y| – |x|).
Для случая «а» результат операции сложения положительный,
поэтому дополнительный код значащей части соответствует прямому
n
коду, перенос 2 в знаковый разряд результата и значения знаковых
разрядов x и y обеспечивают нулевое значение знакового разряда ре-
зультата.
Для случая «б» результат операции сложения отрицательный,
поэтому значащая часть представлена в коде, соответствующем до-
n
полнительному коду, перенос 2 в знаковый разряд результата отсут-
ствует, и значения знаковых разрядов x и y обеспечивают единичное
значение знакового разряда результата.
Например:
24