Основы информатики и вычислительной техники: Учебно-практическое пособие, страница 52

Полученный непосредственно сразу неверный результат (обратный код числа –1110) исправляется путем переноса единицы из знакового разряда в младший разряд суммы. 

При выполнении операции может появиться число, старшие разряды которого не помещаются в отведенной для него области памяти – возникает переполнение разрядной сетки формата числа. Рассмотрим два возможных случая переполнения.

1.  Х1>0 , X2>0 и S=X1+X22n-1, где n – количество разрядов формата числа (для однобайтового формата n=8, 2n-1=27=128)

Пример

  Десятичная запись                Двоичные коды

0

1000001

+

0

1100001

1

0100010

            65

          +

                   97

Подпись: Переполнение                   162

Здесь имеет место переполнение разрядной сетки: семи разрядов цифровой части недостаточно для размещения восьмиразрядной суммы (16210=101000102), поэтому старший разряд суммы оказывается в знаковом разряде и знак суммы оказывается несовпадающим со знаком слагаемых, что является признаком переполнения разрядной сетки.

2  Х1<0, X2<0 и S=|X1|+|X2|2n-1

Пример

  Десятичная запись                Двоичные коды

1

1000000

+

1

0100000

0

1100000

+1

Подпись: Обратный код числа -6310            -63

          +

Подпись: Обратный код числа -9510                   -95

                   -158

Подпись: Переполнение

Здесь также знак суммы не совпадает со знаками слагаемых, что является признаком переполнения разрядной сетки.

При сложении дополнительных кодов чисел Х1 и Х2 имеют место те же четыре основных и два особых случая.

1. Х1>0 и X2>0. Аналогично случаю 1 для обратных кодов.

2. Х1>0, X2<0 и |X2|>X1.

Пример.

  Десятичная запись       Двоичные коды

0

0000011

+

1

1110110

1

1111001