- •Лабораторная работа № 1
- •Тема: Представление чисел и арифметические операции в прямом,
- •Обратном и дополнительном кодах в машинах с фиксированной запятой
- •Цель – освоить арифметические основы компьютерных операций
- •Варианты заданий ( по номеру в списке группы)
- •Теоретические положения
- •1. Прямой, обратный и дополнительный код
- •Прямой код
- •Обратный код
- •Дополнительный код
- •Модифицированный обратный код
- •Модифицированный дополнительный код
- •2. Сложение чисел в дополнительном коде
- •Сложение чисел в обратном коде
- •Контрольные вопросы к лабораторной работе 1.
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
Как видно из рассмотренных случаев, сложение чисел в дополнительных кодах всегда дает сумму также в дополнительном коде, если будут соблюдены определенные условия, о которых говорилось выше.