КАТЕГОРИИ: Архитектура-(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) |
Операции с двоичными числами в обратном коде
Операции с двоичными числами в дополнительном коде.
При использовании дополнительного или о братного кода операция вычитания заменяется операцией сложения с изменением знака второго операнда. При сложении чисел, представленных в дополнительном коде, выполняется сложение разрядов, представляющих запись операндов, по правилам двоичной арифметики по всей длине записи чисел, не обращая внимания на границу, разделяющую знаковое и модульные поля. Переполнение знакового поля, т.е. перенос, возникший из крайнего левого разряда, игнорируется. В результате такого сложения будет получен дополнительный код суммы заданных операндов. Пример Найти значения для С1, С2, С3, С4, определяемых выражениями: С1= А+В, С2=А-В, С3= В-А, С4 = -А-В, если А= 5710, В = - 21010. При выполнении операций использовать двоичный дополнительный код. Результат представить в прямом коде. Решение Преобразуем заданные числа в двоичную систему счисления: А=5710 ,= 1110012, В = - 21010 = -110100102. Определим количество разрядов для модульной части записи чисел, учитывая не только значения используемых операндов, но и ожидаемые результаты выполнения заданных операций. Исходя из абсолютного значения операндов разрядность представления модульной части, n должна быть равна 8. Учитывая то, что в подлежащих реализации выражениях над числами выполняется только одна операция (или сложения, или вычитания), длину модульной части необходимо взять на один разряд больше, т.е. n = 9. Избавляясь от операции вычитания, приводим заданные выражения к виду С1= А+В, С2=А+(-В), С3= В+(-А), С4=(-А) +(-В). Таким образом, в подлежащих реализации выражениях в качестве операндов присутствуют следующие величины: A, -A, B, -B. Представим их в прямом и дополнительном коде:
[А]пр = 0.000111001, [А]дк = 0.000111001, [-А] пр = 1.000111001, [-А] дк = 1.111000111, [В] пр = 1.011010010, [В] дк = 1.100101110, [-В] пр = 0.011010010, [-В] дк = 0.011010010.
Используя сформированный дополнительный код, реализуем выражения для С1,С2, С3, С4.
С1: 0.0 0 0 1 1 1 0 0 1 - [A] дк + 1.1 0 0 1 0 1 1 1 0 - [B] дк 1.1 0 1 1 0 0 1 1 1 - [C1] дк 1.0 1 0 0 1 1 0 0 1 - [C1] пк С2: 0.0 0 0 1 1 1 0 01 - [A] дк + 0.0 1 1 0 1 0 0 1 0 - [-B] дк 0. 1 0 0 0 0 1 0 1 1 - [C2] дк =[C2] пк С3: 1.1 1 1 0 0 0 1 1 1 - [-A] дк + 1.1 0 0 1 0 1 1 1 0 - [B] дк
1.1 0 0 0 0 1 01 1 - [C3] пк..
При выполнении сложения в данном случае возникла единичка переполнения знакового поля. При работе с дополнительным кодом она игнорируется (в примере она перечеркнута).
С4: 1.1 1 1 0 0 0 1 1 1 - [-A] дк + 0. 0 1 1 01 0 0 1 0 - [-B] дк
В данном случае также возникло переполнение знакового поля, которое игнорируется.
При сложении чисел, представленных в обратном коде, выполняется сложение разрядов, представляющих запись операндов, по правилам двоичной арифметики по всей длине записи чисел, не обращая внимания на границу, разделяющую знаковое и модульные поля. Переполнение знакового поля, т.е. перенос, возникший из крайнего левого разряда, должен быть учтен как +1 в младший разряд полученной суммы. В результате такого сложения будет получен обратный код суммы заданных операндов.
Пример Найти значения для С1, С2, С3, С4, определяемых выражениями С1= А+В, С2=А-В, С3= В-А, С4=-А-В, если А= 5710, В = - 21010. При выполнении операций использовать двоичный обратный код. Результат представить в прямом коде. Решение В данном примере используются те же выражения и те же операнды, что и в предыдущем примере, поэтому при его решение используются уже найденные ранее двоичные представления операндов и их прямые коды. Обратные коды операндов имеют вид: [А]ок = 0.000111001, [-А] ок = 1.111000110, [В] ок = 1.100101101, [-В] ок = 0.011010010.
Используя сформированный дополнительный код, реализуем выражения для С1, С2, С3, С4.
С1: 0.0 0 0 1 1 1 0 0 1 - [A] ок + 1.1 0 0 1 0 1 1 0 1 - [B] ок 1.1 0 1 1 0 0 1 1 0 - [C1] ок 1.0 1 0 0 1 1 0 0 1 - [C1] пк С2: 0.0 0 0 1 1 1 0 01 - [A] ок + 0.0 1 1 0 1 0 0 1 0 - [-B] ок 0.1 0 0 0 0 1 0 1 1 - [C2] ок =[C2] пк С3: 1.1 1 1 0 0 0 1 1 0 - [-A] ок + 1.1 0 0 1 0 1 1 0 1 - [B] ок 1 1.0 1 1 1 1 0 0 1 1 + 1 1. 0 1 1 1 1 0 1 0 0 - [C3] ок. 1.1 0 0 0 0 1 0 1 1 - [C3] пк С4: 1.1 1 1 0 0 0 1 1 0 - [-A] ок + 0. 0 1 1 01 0 0 1 0 - [-B] ок 1 0. 0 1 0 01 1 0 0 0 + 1 0. 0 1 0 01 1 0 0 1 - [C4] ок =[C4] ПК
В данном случае также возникло переполнение знакового разряда, которая должна быть учтена как «+1» в младший разряд сформированной суммы.
Дата добавления: 2014-01-07; Просмотров: 864; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |