Алгебраическое сложение в дополнительном коде
Рассмотрим те же четыре случая сочетания знаков и модулей операндов, что и при рассмотрении сложения в обратном коде в разд. 3.5.1: (Страница57) □Случай 1. Этот случай соответствует обычному сложению прямых кодов чисел: [A>0]c+[B>0]c=A+B. □ Случай 2. [А>0] c+ [В<0 ] c= A+2 + B, Истинное значение результата в рассматриваемом случае (сумма положительна) будет A+B и коррекция заключается в вычитании 2. □ Случай 3. [А>0]c + [В<0 ] c= A +2+ В. Этот результат соответствует правильному, поскольку рассматривается случай отрицательной суммы. □ Случай 4. [А<0]i+[В<0]i =2+ A+ 2+ В. Здесь предварительный результат, как и в случае 2°, нуждается в коррекции путем вычитания 2, поскольку истинное значение отрицательной суммы, представленной в дополнительном коде A+B+ 2. Как и в обратном коде, коррекция требуется только в случаях 2 и 4, причем в дополнительном коде коррекция заключается просто в игнорировании переноса, возникающего из знакового разряда. Рассмотрим несколько примеров. Пример 3.15 Сложить два числа в дополнительном коде: (+13/16)+(-3/16)=(+10/16). Результат — на рис. 3.14. Рис. 3.14. Результат выполнения примера 3.15 Пример 3.16 Сложить два числа в дополнительном коде (случай 3). Результат — на рис. 3.15. Рис. 3.15. Результат выполнения примера 3.16 Пример 3.17 Сложить два числа в дополнительном коде (случай 4). Результат — на рис. 3.16. Рис. 3.16. Результат выполнения примера 3.17 Пример 3.18 Сложить два числа в дополнительном коде (одинаковые модули, но разные знаки). Результат — на рис. 3.17. Рис. 3.17. Результат выполнения примера 3.18 Из примера 3.18 видно, что "ноль" в дополнительном коде имеет единственное "положительное" представление. Теперь рассмотрим случаи, когда Пример 3.19 Сложить два числа в дополнительном коде: 13/16+5/16=18/16. Результат — на рис. 3.18. Рис 3.18. Результат выполнения примера 3.19 Пример 3.20 Сложить два числа в дополнительном коде: (-11/16)+(-8/16)=(-19/16). Результат — на рис. 3.19. Рис. 3.19. Результат выполнения примера 3.20 Очевидно, для дополнительного кода, как и для обратного, справедливо выражение (3.19). Теперь рассмотрим случаи Для случая A<0, B<0,
|