Page 23 - ЭВМ
P. 23

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

                      Правильный  результат  может  быть  достигнут  при  использова-
               нии  дополнительного  или  обратного  кодирования  чисел,  при  этом
               обеспечивается автоматическое определение наличия или отсутствия
               переполнения разрядной сетки:
                      1. Введем дополнительное кодирование числа x по следующему
               правилу: если x ≥ 0, то дополнительный код числа x совпадает с пря-

               мым кодом, если x < 0, то при сохранении знака (1) значимая часть
                             n
               числа x = 2 – | x | (табл. 1.2).
                      Например:
                      5 (10) = 0101 (2) = 000101 (2), где 101 – значащая часть кода;
                      –5 (10) = 1011 (2) = 111011 (2), где 011 – значащая часть кода.
                      Заметим,  что  дополнительный  код  отрицательного  числа  x,

               включая знак, также может быть получен по правилу x = 2                    n+1  – | x |.

                                                                                             Таблица 1.2
                     Представление числа в прямом, дополнительном и обратном коде

                      x           Прямой код           Дополнительный код             Обратный код
                      3                011                       011                        011
                      2                010                       010                        010
                      1                001                       001                        001
                      0                000                       000                        000
                     –0                100                       000                        111
                     –1                101                       111                        110
                     –2                110                       110                        101
                     –3                111                       101                        100

                      2. Введем обратное кодирование числа x по следующему правилу:

               если x ≥ 0, то обратный код числа x совпадает с прямым кодом, если
                                                                                               n

               x < 0, то при сохранении знака (1) значащая часть числа x = 2 –1 – | x |
               (табл. 1.2).
                      Связь обратного и дополнительного кодов: x = x ’ + 1.
                      Необходимо отметить следующее:

                      1. Знаковую часть числа при дополнительном и обратном коди-
               рованиях  можно  продолжить  влево  на  любое  число  разрядов.  Для
               прямого кодирования это правило не действует.
                      2. Представление нуля при дополнительном кодировании одно-
               значно, при прямом и обратном кодировании – нет.


                                                           23
   18   19   20   21   22   23   24   25   26   27   28