Модифицированный дополнительный код
Число Х в модифицированном дополнительном коде обозначается [Х]мдоп. Числа переводятся в этот код так же, как и в дополнительный, но на изображение знака отводится два разряда.
Пример. Х = -0,101110101; [Х]мобр = 11,010001011.
Сложение чисел в дополнительном коде
Дополнительные коды чисел складываются поразрядно, причем знаковые разряды складываются как разряды целых чисел. Особенность сложения дополнительных кодов состоит в том, что единица переноса, образующаяся при сложении знаковых разрядов, не учитывается, т. е. теряется.
Пусть складываемые числа Х и 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
Как видно из рассмотренных случаев, сложение чисел в дополнительных кодах всегда дает сумму также в дополнительном коде, если будут соблюдены определенные условия, о которых говорилось выше.
Сложение чисел в обратном коде
Обратные коды чисел складываются так же, как и дополнительные коды, поразрядно, причем знаковые разряды складываются как разряды целых единиц.
|
|
Особенность сложения обратных кодов состоит в том, что единица переноса из знакового разряда (если она возникает) прибавляется к младшему разряду суммы кодов (так называемый циклический перенос).
В ходе сложения обратных кодов могут встретиться четыре случая.
Случай 1. Х>0; Y>0, следовательно, и Х+Y>0.
Так как слагаемые положительны, то изображения их в обратном и прямом кодах совпадают, а потому совпадают и изображения суммы в обоих кодах.
Случай 2. X>0; Y<0; X+Y<0.
Как и при рассмотрении различных случаев сложения кодов, будем складывать числа в прямом и обратном кодах и сравнивать записи получающихся сумм.
Сложение в
Прямой код Обратный код обратном коде
+ Х = 0,001001 à [Х]обр = 0,001001 à + 0,001001
Y = -0,110001 à [Y] обр = 1,001110 à 1,001110
Х + Y = -0,101000 à [X+Y]обр = 1,010111 ß 1,010111
В данном случае циклический перенос не образуется.
Случай 3. X>0; Y<0; X+Y>0.
Сложение в
|
|
Прямой код Обратный код обратном коде
+ Х = 0,110001 à [Х]обр = 0,110001 à + 0,110001
Y = -0,001001 à [Y] обр = 1,110110 à 1,110110
Х + Y = 0,101000 à [X+Y]обр = 0,101000 ß 10,100111+
î_______þ ---------- ® 1
_____________ 0,101000
В данном случае получается циклический перенос; единица переноса, получившаяся в разряде целых чисел, прибавляется к младшему разряду суммы обратных кодов.
Случай 4. X<0; Y<0; X+Y<0.
Сложение в
Прямой код Обратный код обратном коде
+ Х = -0,110001 à [Х]обр = 1,001110 à + 1,001110
Y = -0,001001 à [Y] обр = 1,110110 à 1,110110
Х + Y = 0,111010 à [X+Y]обр = 1,000101 ß 11,000100+
î_______þ ---------- ® 1
______________1,000101
Рассмотренные случаи показывают, что при соблюдении отмеченных ранее определенных условий сложение чисел в обратных кодах дает сумму также в обратном коде.
В модифицированных дополнительном и обратном кодах числа складываются так же, как и в обычных дополнительных и обратных кодах.
Контрольные вопросы к лабораторной работе 1.
1. Представление положительных и отрицательных чисел в прямом коде.
2. Представление положительных и отрицательных чисел в обратном коде.
3. Представление положительных и отрицательных чисел в дополнительном коде.
4. Представление положительных и отрицательных чисел в модифицированном обратном коде.
5. Представление положительных и отрицательных чисел в модифицированном дополнительном коде.
6. Правила выполнения арифметических операций для чисел представленных в обратном коде.
7. Правила выполнения арифметических операций для чисел представленных в дополнительном коде.
8. Для каких целей введен модифицированный код?
Дата добавления: 2018-11-24; просмотров: 565; Мы поможем в написании вашей работы! |
![](/my/edugr4.jpg)
Мы поможем в написании ваших работ!