Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 1.doc
Скачиваний:
33
Добавлен:
02.06.2015
Размер:
167.42 Кб
Скачать

2. Сложение чисел в дополнительном коде

Дополнительные коды чисел складываются поразрядно, причем знаковые разряды складываются как разряды целых чисел. Особенность сложения дополнительных кодов состоит в том, что единица переноса, образующаяся при сложении знаковых разрядов, не учитывается, т. е. теряется.

Пусть складываемые числа Х и Y – правильные дроби, причем |Х+Y|<1 (абсолютная величина суммы меньше 1). При сложении дополнительных кодов чисел, удовлетворяющих этим условиям, могут встретиться четыре различных случая.

Случай 1. Х>О; Y>О (слагаемые положительны).

Сложение в

Прямой код Дополнительный код дополнительном коде

+ Х = 0,101001 à [Х]доп = 0,101001 à + 0,101001

Y = 0,001101 à [Y]доп = 0,001101 à 0,001101

Х + Y = 0,110110 à [X+Y]доп = 0,110110 ß 0,110110

В левом столбце сложены числа в прямом коде, затем оба числа и их сумма переведены в дополнительный код (средний столбец). В правом столбце сложены оба числа в дополнительном коде. Сравнивая получившуюся сумму с третьей строкой среднего столбца, убеждаемся в том, что числа одинаковы. Данный случай не выявляет особенностей сложения в дополнительном коде, потому что слагаемые положительны, и их изображения в дополнительном и прямом кодах совпадают.

Случай 2. Х>0; Y<0; Х+У<0.

Одно из слагаемых положительно, другое отрицательно, сумма их отрицательна. Так же, как и в предыдущем случае, запишем в левом столбце прямые коды слагаемых и найдем их сумму. Затем переведем слагаемые и сумму в дополнительный код и в правом столбце произведем сложение в дополнительном коде.

Сложение в

Прямой код Дополнительный код дополнительном коде

+ Х = 0,001101 à [Х]доп = 0,001101 à + 0,001101

Y = -0,101001 à [Y]доп = 1,010111 à 1,010111

Х + Y = 0,011100 à [X+Y]доп = 1,100100 ß 1,100100

Как видно из примера, сумма, полученная от сложения дополнительных кодов, является изображением в дополнительном коде действительной суммы чисел Х и Y.

Случай 3. Х>О; Y>0, но X+Y>0.

Сложение в

Прямой код Дополнительный код дополнительном коде

+ Х = 0,101001 à [Х]доп = 0,101001 à + 0,101001

Y = -0,001101 à [Y]доп = 1,110011 à 1,110011

Х + Y = 0,011100 à [X+Y]доп = 0,011100 ß 10,011100

î_______þ ¬

­____________0,011100

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

Случай 4. Х<0; Y<0; Х+Y<0.

Сложение в

Прямой код Дополнительный код дополнительном коде

+ Х = -0,101001 à [Х]доп = 1,010111 à + 1,010111

Y = -0,001101 à [Y]доп = 1,110011 à 1,110011

Х + Y = -0,110110 à [X+Y]доп = 1,001010 ß 11,001010

î_______þ ¬

­_____________1,001010

Как видно из рассмотренных случаев, сложение чисел в дополнительных кодах всегда дает сумму также в дополнительном коде, если будут соблюдены определенные условия, о которых говорилось выше.