Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Алгебраическое сложение в обратном коде




Очевидно, что при отсутствии переполнения возможны четыре случая сочетания знаков и модулей слагаемых [11].

□ Случай 1.

Этот случай соответствует обычному сложению прямых кодов чисел:

(Страница51)

□ Случай 2.

[A>0] i +[B<0] i =A+2+B - 2 - n. Назовем этот результат предварительным. Истинное значение результата в рассматриваемом случае (сумма положительна) будет A+B. Следовательно, предварительный результат нуждается в коррекции путем вычитания 2 и добавления 2 - n.

□ Случай 3.

[A>0] i +[B<0] i =A+2+B - 2 - n.Этот результат соответствует правильному, поскольку рассматривается случай отрицательной суммы.

□ Случай 4.

Здесь предварительный результат нуждается в коррекции путем вычитания 2 и добавления 2 - n, как и в случае 2, поскольку истинное значение отрицательной суммы, представленной в обратном коде, A+B+2-2-n.

Заметим, что в случаях 2 и 4 требуется одинаковая коррекция: - 2+ 2 - n, причем только в этих двух случаях возникает перенос из знакового разряда. Действительно, в случае 4 оба знаковых разряда равны 1, а в случае 2 знак результата — 0, что при разных знаках слагаемых может получиться только при появлении переноса из первого разряда в нулевой (знаковый), а, следовательно, обязательно будет перенос и из знакового разряда. Вес знакового разряда соответствует 20, а вес переноса из него — 21. Таким образом, игнорируя перенос из знакового разряда, мы вычитаем из результата 2, что соответствует первому члену корректирующего выражения. Для учета второго члена следует добавить 1 к младшему разряду суммы, вес которого составляет 2 - n.

В случаях 1 и 3 переноса из знакового разряда не возникает и коррекция результата не требуется.

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

Рассмотрим несколько примеров.

Пример 3.5

Сложить два числа в обратном коде. Результат — на рис. 3.4.

Рис. 3.4. Результат выполнения примера 3.5

Приведенный пример соответствует рассмотренному выше случаю 2; перенос, возникающий в знаковом разряде, циклически передается в младший разряд предварительного результата.

Пример 3.6

Сложить два числа в обратном коде (случай 3). Результат — на рис. 3.5.

Рис. 3.5. Результат выполнения примера 3.6

Пример 3.7

Сложить два числа в обратном коде (случай 4). Результат — на рис. 3.6.

Рис. 3.6. Результат выполнения примера 3.7

Пример 3.8

Сложить два числа в обратном коде (одинаковые модули, но разные знаки). Результат — на рис. 3.7.

Рис. 3.7. Результат выполнения примера 3.8

Таким образом, ноль в обратном коде бывает "положительный" и "отрицательный" (обратите внимание на выражение (3.17)), причем добавление к числу "отрицательного" нуля, как и "положительного", дает в результате значение первого слагаемого.

Пример 3.9

Сложить два числа в обратном коде: 3+(-0). Результат — на рис. 3.8.

Рис. 3.8. Результат выполнения примера 3.9

Теперь рассмотрим случаи, когда что соответствует переполнению разрядной сетки. Очевидно, учитывая, что переполнение возможно только при сложении чисел с одинаковыми знаками. Рассмотрим примеры.

Пример 3.10

Сложить два числа в обратном коде: 13/16+5/16=18/16. Результат — на рис. 3.9.

Рис. 3.9. Результат выполнения примера 3.10

Пример 3.11

Сложить два числа в обратном коде: (-11/16)+(-8/16)=(-19/16). Результат — на рис. 3.10.

Рис. 3.10. Результат выполнения примера 3.11

Таким образом, признаком переполнения в обратном коде можно считать знак результата, противоположный одинаковым знакам слагаемых:

(3.19)

Пример 3.12

Сложить числа в обратном коде (А>В, B>0, ). Результат — на рис. 3.11.

Рис. 3.11. Результат выполнения примера 3.12

Пример 3.13

Сложить числа в обратном коде Результат — на рис. 3.12.

Рис. 3.12. Результат выполнения примера 3.13

Переполнение в соответствии с (3.19) обнаруживается и в этих случаях.

Итак, использование обратного кода в операциях алгебраического сложения/вычитания позволяет:

□ использовать только действие арифметического сложения двоичных кодов;

□ получать истинное значение знака результата, выполняя над знаковыми разрядами операндов те же действия, что и над разрядами чисел;

□ обнаруживать переполнение разрядной сетки.

Еще одним достоинством применения обратного кода можно считать простоту взаимного преобразования прямого и обратного кода.

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




Поделиться с друзьями:


Дата добавления: 2015-04-25; Просмотров: 1267; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.