Page 26 - ЭВМ
P. 26

1. Первый случай – x ≥ 0 и y  ≥ 0. Здесь доказательство анало-
               гично доказательству для сложения чисел, представленных в допол-

               нительном коде.
                      2. Второй случай – x ≥ 0, y < 0. По определению обратного коди-
                                                                                 n
               рования для значащей части кода имеем: z’ = |x| + 2 – |y| – 1 =
                           n
                      a) 2 + (|x| – |y|) – 1, если |x| ≥ |y;
                           n
                      б) 2 – (|y| – |x|) – 1, если |x| < |y|.
                      Для  случая «а»  результат  операции  сложения  положительный.
                            n
               Перенос 2  в знаковый разряд результата и значения знаковых разря-
               дов x и y обеспечивают нулевое значение знакового разряда результа-

               та.  Код  значащей  части  следует  скорректировать  посредством  при-
               бавления  к  младшему  разряду  результата  циклического  переноса  из
               знакового разряда результата.
                      Для  случая «б»  результат  операции  сложения  отрицательный,
               поэтому  значащая  часть  представлена  в  коде,  соответствующем  об-
                                                n
               ратному коду, перенос 2  в знаковый разряд результата отсутствует,
               и значения знаковых разрядов x и y обеспечивают единичное значение
               знакового разряда результата.
                      Например:

                      x = 5                00101
                      y = –2               11101
                                          1 00010
                                                   1
                                           00011             –«3».

                      3. Третий случай – x < 0, y ≥ 0 (см. случай 2).
                      4. Четвертый случай – x  < 0, y < 0. По определению обратного
                                                                                            n
               кодирования для значащей части кода имеем:  z’ = x’ + y’ = 2 – |x| – 1 +
                                   n
                                          n
                   n
               + 2 – |y| – 1 = 2 + [2 – (|x| + |y|) – 1] – 1 – результат в дополнительном
               коде, который также корректируется с помощью циклического пере-
               носа.
                                             n
                                                                                                   n
                      Если (|x| + |y|) < 2 , то переполнения разрядной сетки нет, 2  есть
               перенос в знаковый разряд результата. Значения знаковых разрядов x
                                   n
               и y и перенос 2  обеспечивают единичное значение знакового разряда
               результата с фиксацией переноса из знакового разряда. Код значащей
               части следует скорректировать посредством прибавления к младшему

               разряду  результата  циклического  переноса  из  знакового  разряда
               результата.
                                            n
                      Если (|x| + |y|) > 2 , то будет переполнение разрядной сетки.
                      Например:


                                                           26
   21   22   23   24   25   26   27   28   29   30   31