КАТЕГОРИИ: Архитектура-(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 с комбинацией 8421 нельзя получить обратный или дополнительный код простым инвертированием, т.к. инвертирование набора тетрад означает получение дополнения до 24- 1 = 15. Следовательно, необходимо убрать разницу. Один из используемых при этом приемов состоит в том, что во все цифровые тетрады числа в коде Д1добавляется 0110 и после этого производится инвертирование набора. Полученное изображение представляет собой обратный код числа. А дополнительный код получается, как обычно, добавлением 1 к младшему разряду младшей тетрады. Рассмотрим примеры:
1) представить число A = -25610 = 0. 0010 0101 01102 в обратном коде для кода Д1: 1. 0010 0101 0110 + 0110 0110 0110 во все тетрады добавили 0110 1000 1011 1100 после инвертирования имеем Aоб = 1. 0111 0100 0011 2) представить число A = -39810 в дополнительном коде для кода Д1: 1. 0011 1001 1000 + 0110 0110 0110 добавляем 0110 1. 1001 1111 1110 инвертируем 0110 0000 0001 +1 AД = 1.0110 0000 0010
Операции сложения и вычитания в Д-кодах выполняются над операндами по формальным правилам десятичной арифметики, описанным ранее: 1. При сложении двух положительных чисел перевод в дополнительный код исключается. В случае появления потетрадного переноса или результата больше 9 производится коррекция результата прибавлением 6. 2. Сложение отрицательных чисел выполняется аналогично сложению положительных с той лишь разницей, что результату присваивается отрицательный знак. 3. При вычитании чисел осуществляется предварительный перевод в дополнительный код, а затем сложение чисел. Рассмотрим пример когда одно число отрицательное, а другое положительное: 1) Сложить два числа в коде Д1 A = -1000 0010 0101, B = 1001 0100 0110. [A]l = 1. 0001 0111 0101 [B] = 0. 1001 0100 0110 1. 1010 1011 1011 + 0110 0110 0110 поправки [C] = 0. 0001 0010 0001
Выполнение операций умножения в Д-кодах принципиально производится по классической схеме. Умножение чисел сводится к последовательному суммированию частных произведений, полученных при умножении множимого на очередную цифру множителя. Так как каждая цифра множителя представляется тетрадой, то умножение сопровождается расшифровкой значения очередной тетрады множителя и сдвигом на 4 разряда сразу. Расшифровку можно осуществить разными способами. Простейшим примером является последовательное вычитание 1 из значения тетрады до получения 0 и соответственно прибавление множимого. Надо учитывать обязательно промежуточные переполнения. Рассмотрим пример умножения двух чисел, представленных в коде Д1: умножим X = 2510 = 0010 0101 на Y = 1210 = 0001 0010, частные произведения формируем в P. Анализ тетрад Y начинаем с младшей.
0010 0101 x 0001 0010 = 0011 0000 0000 = 30010 P 0000 0000 0000 + X 0010 0101 0010 - 0001 = 0001 > 0, значит надо еще раз X + P P 0000 0010 0101 + X 0010 0101 0010 - 0001 = 0, конец анализа младшей тетрады. P 0000 0100 1010 + 0110 поправка P 0000 0101 0000 сдвигаем X на 4 разряда влево и складываем с P, анализируя старшую тетраду Y.
P 0000 0101 0000 + X 0010 0101 0000 0001 - 0001 = 0 P 0010 1010 0000 + 0110 поправка P 0011 0000 00002 = 30010 ответ.
Дата добавления: 2014-01-06; Просмотров: 1271; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |