Студопедия

КАТЕГОРИИ:


Архитектура-(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 1 1 1 1 0 1 0 1 - [C3] дк

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 0. 0 1 0 01 1 0 0 1 - [C4] дк =[C4] ПК

 

В данном случае также возникло переполнение знакового поля, которое игнорируется.

 

При сложении чисел, представленных в обратном коде, выполняется сложение разрядов, представляющих запись операндов, по правилам двоичной арифметики по всей длине записи чисел, не обращая внимания на границу, разделяющую знаковое и модульные поля. Переполнение знакового поля, т.е. перенос, возникший из крайнего левого разряда, должен быть учтен как +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; Просмотров: 807; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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