Арифметические основы ЭВМ. Пономарев В.С - 8 стр.

UptoLike

(X+Y)
доп
=1,1110101 (X+Y)
пр
=1,0001010+0,0000001=1,0001011.
Таким образом X+Y= –1011 и полученный результат совпадает с обычной
записью.
2.3 Модифицированные обратный и дополнительный коды.
При переполнении разрядной сетки, происходит перенос единицы в
знаковый разряд. В этом случае положительное число, получившееся в
результате арифметической операции может восприниматься как
отрицательное, так как в знаковом разряде “1”.
Здесь X и Y – коды положительных чисел, но ЭВМ воспринимает
результат их сложения как код отрицательного числа (“1” в знаковом
разряде). Для обнаружения переполнения
разрядной сетки вводятся
модифицированные коды.
Модифицированный обратный кодв нем под знак числа
отводится не один, а два разряда. Форма записи чисел в модифицированном
обратном коде выглядит следующим образом:
1) для положительного числа
X=
XXX ... X
123 n
; X
oб
p
м
= 00, X X X ... X
123 n
;
2) для отрицательного числа
X=
XXX ... X
123 n
; X
oб
p
м
=11, X X X ... X
123 n
;
(обозначение
X читаетсяне X”, т.е. , если X=0, то X =1 и наоборот, если
X=1, то
X =0).
Любая другая комбинация (“01” или “10”), получившаяся в
знаковых разрядах служит
признаком переполнения разрядной сетки.
Сложение чисел в модифицированном обратном коде ничем не отличается
от сложения в обычном обратном коде.
Рассмотрим предыдущий пример, выполнив сложение в
модифицированном обратном коде:
В ЭВМ в процессе работы оба знаковых разряда сравниваются. В
случае появления признака переполнения машина останавливается.
Модифицированный дополнительный код также рассматривает
два знаковых разряда, а во всем остальном ничем не отличается от обычного
дополнительного кода, то есть:
1) для положительного числа
X=
XXX ... X
123 n
; X
доп
м
= 00, X X X . .. X
123 n
;
2) для отрицательного числа
X=
XXX ... X
123 n
; X
до п
м
=11, X X X ... X
123 n
+0,000 . . . 1;
Пример. Даны два числа: X=101001 и Y= –11010. Сложить их в
дополнительном и модифицированном дополнительном кодах.
1) Переведем X и Y в дополнительный и модифицированный
дополнительный код:
2) Выполним сложение:
Переполнения нет (в знаковых разрядах “00”), поэтому результаты,
полученные в обычном и модифицированном кодах совпадают (X+Y=1111).
Упражнения 2.
Например: X=0,1010110
Y=0,1101000
X+Y=1,0111110
X=00,101011
Y=00,110100
X+Y=01,011111
Обычная запись Обратный код Дополнительный код
X=+0101001
Y=–0011010
X
обр
=0,0101001
Y
об
р
=1,1100101
X
доп
=0,0101001
Y
д
оп
=1,1100110
Обычная запись Мод. обратный код Мод. дополнительный код
X=+101001
Y=–011010
X
об р
м
=00,101001
Y
об р
м
=11,100101
X
до п
м
=00,101001
Y
до п
м
=11,100110
X
доп
= 0,0101001
Y
доп
= 1,1100110
1)0,0001111
отбрасывается
(X+Y)
доп
= 0,0001111
X
до п
м
= 00,101001
Y
до п
м
= 11,100110
1) 00,001111
отбрасывается
(X+Y)
до п
м
= 00,001111
 (X+Y)доп=1,1110101 → (X+Y)пр=1,0001010+0,0000001=1,0001011.                         Модифицированный дополнительный код также рассматривает
Таким образом X+Y= –1011 и полученный результат совпадает с обычной         два знаковых разряда, а во всем остальном ничем не отличается от обычного
записью.                                                                    дополнительного кода, то есть:
                                                                             1) для положительного числа
2.3 Модифицированные обратный и дополнительный коды.                         X= X 1 X 2 X 3 ... X n ;   X дмо п= 00, X 1 X 2 X 3 . .. X n ;
                                                                            2) для отрицательного числа
         При переполнении разрядной сетки, происходит перенос единицы в
                                                                             X= X 1 X 2 X 3 ... X n ;    X дмо п= 11, X 1 X 2 X 3 . . . X n +0,000 . . . 1;
знаковый разряд. В этом случае положительное число, получившееся в
результате арифметической операции может восприниматься как
отрицательное, так как в знаковом разряде “1”.                              Пример. Даны два числа: X=101001 и Y= –11010. Сложить их в
Например: X=0,1010110                                                       дополнительном и модифицированном дополнительном кодах.
                 Y=0,1101000                                                1) Переведем X и Y в дополнительный и модифицированный
             X+Y=1,0111110                                                  дополнительный код:
         Здесь X и Y – коды положительных чисел, но ЭВМ воспринимает          Обычная запись        Обратный код         Дополнительный код
результат их сложения как код отрицательного числа (“1” в знаковом             X=+0101001          Xобр=0,0101001          Xдоп=0,0101001
разряде). Для обнаружения переполнения разрядной сетки вводятся                Y=–0011010          Yобр=1,1100101          Yдоп=1,1100110
модифицированные коды.
         Модифицированный обратный код – в нем под знак числа                 Обычная запись         Мод. обратный код              Мод. дополнительный код
отводится не один, а два разряда. Форма записи чисел в модифицированном         X=+101001             X ом б р =00,101001               X мд о п=00,101001
обратном коде выглядит следующим образом:
                                                                                Y=–011010              Yомб р =11,100101                     Yдмо п =11,100110
1) для положительного числа
                               м
 X= X 1 X 2 X 3 ... X n ;    X oб p= 00, X 1 X 2 X 3 .. . X n ;
                                                                            2) Выполним сложение:
2) для отрицательного числа
                              м
                                                                                Xдоп=     0,0101001                        X мд о п =             00,101001
 X= X 1 X 2 X 3 ... X n ;   X oб p= 11, X 1 X 2 X 3 . .. X n ;                  Yдоп=      1,1100110
                                                                                         1)0,0001111                       Y мд о п =             11,100110
(обозначение X читается “не X”, т.е. , если X=0, то X =1 и наоборот, если
                                                                                                                                                 1) 00,001111
X=1, то X =0).
                                                                              отбрасывается                           отбрасывается
        Любая другая комбинация (“01” или “10”), получившаяся в
                                                                                (X+Y)доп= 0,0001111                        (X+Y)        м
знаковых разрядах служит признаком переполнения разрядной сетки.                                                                        д о п=    00,001111
Сложение чисел в модифицированном обратном коде ничем не отличается
от сложения в обычном обратном коде.                                               Переполнения нет (в знаковых разрядах “00”), поэтому результаты,
        Рассмотрим предыдущий пример, выполнив сложение в                   полученные в обычном и модифицированном кодах совпадают (X+Y=1111).
модифицированном обратном коде:
               X=00,101011
               Y=00,110100
           X+Y=01,011111                                                    Упражнения 2.
        В ЭВМ в процессе работы оба знаковых разряда сравниваются. В
случае появления признака переполнения машина останавливается.