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

UptoLike

Обратный код. Обратный код для положительного числа совпадает с
прямым кодом. Для отрицательного числа все цифры числа заменяются на
противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.
Пример.
Для числа +1101 прямой код 0 , 0001101; обратный код 0,0001101.
Для числа –1101 прямой код 1 , 0001101; обратный код 1,1110010.
Дополнительный код. Дополнительный код положительного числа
совпадает с прямым кодом. Для отрицательного числа дополнительный код
образуется путем получения обратного кода и добавлением к младшему
разряду единицы.
Пример.
Для числа +1101:
прямой код обратный код дополнительный код
0,0001101 0,0001101 0,0001101
Для числа –1101:
прямой код обратный код дополнительный код
1,0001101 1,1110010 1,1110011
2.2 Особенности сложения чисел в обратном и дополнительном
кодах.
При
сложении чисел в дополнительном коде возникающая
единица переноса в знаковом разряде отбрасывается.
При
сложении чисел в обратном коде возникающая единица
переноса в знаковом разряде прибавляется к младшему разряду суммы
кодов.
Если результат арифметических действий является кодом
отрицательного числа, необходимо преобразовать его в прямой код. При
этом обратный код преобразуется в прямой заменой цифр во всех разрядах
кроме знакового на противоположные. Дополнительный код преобразуется в
прямой также, как и обратный, с
последующим прибавлением единицы к
младшему разряду.
Пример.
Сложить X и Y в обратном и дополнительном кодах.
а) X= 111, Y= –11;
1) Сложим числа пользуясь правилами двоичной арифметики:
2) Сложим числа используя коды:
Так как результат сложения является кодом положительного числа (знак 0),
то (X+Y)
обр
=(X+Y)
доп
=(X+Y)
пр
.
б) X= –101,Y= –11;
1) Сложим числа пользуясь правилами двоичной арифметики:
X= – 101
Y= – 110
X+Y= –1011
2) Сложим числа используя коды:
Так как сумма является кодом отрицательного числа (знак 1) то необходимо
перевести результаты в прямой код:
а) из обратного кода
(X+Y)
обр
=1,1110100 (X+Y)
пр
=1,0001011;
б) из дополнительного кода
X= 111
Y= – 11
X+Y= 100
Прямой код Сложение в обратном
коде
Сложение в дополни-
тельном коде
X
пр
=0,0000111
Y
пр
=1,0000011
X
обр
= 0,0000111
Y
обр
= 1, 1111100
1 0,0000011
+1
(X+Y)
об
р
= 0,0000100
X
доп
= 0,0000111
Y
доп
= 1,1111101
1)0,0000100
отбрасывается
(X+Y)
д
оп
= 0,0000100
Прямой код Сложение в обратном
коде
Сложение в дополни-
тельном коде
X
пр
=1,0000101
Y
пр
=1,0000110
X
обр
= 1,1111010
Y
обр
= 1,1111001
1 1,1110011
+1
(X+Y)
об
р
= 1,1110100
X
доп
= 1,1111011
Y
доп
= 1,1111010
1)1,1110101
отбрасывается
(X+Y)
д
оп
= 1,1110101
Обратный код. Обратный код для положительного числа совпадает с              X= 111
прямым кодом. Для отрицательного числа все цифры числа заменяются на         Y= – 11
противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.    X+Y= 100
Пример.
 Для числа +1101 прямой код 0 , 0001101; обратный код 0,0001101.           2) Сложим числа используя коды:
 Для числа –1101 прямой код 1 , 0001101; обратный код 1,1110010.
Дополнительный код. Дополнительный код положительного числа                    Прямой код       Сложение в обратном        Сложение в дополни-
совпадает с прямым кодом. Для отрицательного числа дополнительный код                                   коде                  тельном коде
образуется путем получения обратного кода и добавлением к младшему           Xпр=0,0000111     Xобр=      0,0000111        Xдоп=     0,0000111
разряду единицы.                                                             Yпр=1,0000011     Yобр=      1, 1111100       Yдоп=      1,1111101
Пример.                                                                                                  1 0,0000011                1)0,0000100
Для числа +1101:                                                                                                   +1     отбрасывается
прямой код      обратный код        дополнительный код                                         (X+Y)обр= 0,0000100          (X+Y)доп= 0,0000100
 0,0001101         0,0001101               0,0001101
                                                                           Так как результат сложения является кодом положительного числа (знак 0),
Для числа –1101:                                                           то (X+Y)обр=(X+Y)доп=(X+Y)пр .
прямой код     обратный код      дополнительный код
 1,0001101        1,1110010            1,1110011                           б) X= –101,Y= –11;
                                                                           1) Сложим числа пользуясь правилами двоичной арифметики:
                                                                               X= – 101
2.2 Особенности сложения чисел в обратном и дополнительном                     Y= – 110
кодах.                                                                     X+Y= –1011

        При сложении чисел в дополнительном коде возникающая               2) Сложим числа используя коды:
единица переноса в знаковом разряде отбрасывается.
        При сложении чисел в обратном коде возникающая единица                 Прямой код        Сложение в обратном       Сложение в дополни-
переноса в знаковом разряде прибавляется к младшему разряду суммы                                        коде                 тельном коде
кодов.                                                                       Xпр=1,0000101        Xобр=    1,1111010         Xдоп=    1,1111011
        Если результат арифметических действий является кодом                Yпр=1,0000110        Yобр=    1,1111001         Yдоп=    1,1111010
отрицательного числа, необходимо преобразовать его в прямой код. При                                      1 1,1110011               1)1,1110101
этом обратный код преобразуется в прямой заменой цифр во всех разрядах                                             +1     отбрасывается

кроме знакового на противоположные. Дополнительный код преобразуется в                            (X+Y)обр= 1,1110100       (X+Y)доп= 1,1110101
прямой также, как и обратный, с последующим прибавлением единицы к
младшему разряду.                                                          Так как сумма является кодом отрицательного числа (знак 1) то необходимо
Пример.                                                                    перевести результаты в прямой код:
Сложить X и Y в обратном и дополнительном кодах.                           а) из обратного кода
а) X= 111, Y= –11;                                                         (X+Y)обр=1,1110100 → (X+Y)пр=1,0001011;
1) Сложим числа пользуясь правилами двоичной арифметики:                   б) из дополнительного кода