Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Приклад 16.10. Знайти добуток С = А·В в додатковому коді, де А10 = 4, В10 = 7



Знайти добуток С = А · В в додатковому коді, де А10 = 4, В10 = 7.

А 10 = 4, А 2 = 100, [А] дк = 0 100, В 10 = 7, В 2 = 111, [В] дк = 0 111.

0111

0000

[С] дк = 0 11100. Тому що отримане число більше 0, то додатковий код збігається з прямим. Виконаємо перевірку:

С = 111002 = 1 · 24+1 · 23+1 · 22+0 · 21+0 · 20 = 16+8+4 = 2810.

Приклад 16.11

Знайти добуток С = А · В, D = А · (–В), E = (–А) · В, F = (–А) · (–В).

А 10 = 10, А 2 = 1010, [ А] дк = 0 1010, [– А] дк = 1 0110.

В 10 = 13, В 2 = 1101, [ В] дк = 0 1101, [– В] дк = 1 0011.

Знайдемо С = А · В:

01010

01101

01010

0 10000010

[ С] дк = 0 10000010. Оскільки отримане число більше 0, то додатковий код збігається з прямим. Виконаємо перевірку:

С = 100000102 = 1 · 27+0 · 26+0 · 25+0 · 24+0 · 23+0 · 22+1 · 21+0 · 20 = 128+2 = 13010.

Знайдемо D = А · (–В):

10011

10110

При множенні на знакову одиницю множника була виконана корекція – складено [– А] дк = 1 0110.

Оскільки добуток менше нуля, то для переходу в прямий код добуток інвертуємо та додаємо 1 до молодшого розряду: 1 10000001+1 = 1 10000010

Виконаємо перевірку:

D = 1 100000102 = – (1 · 27+0 · 26+0 · 25+0 · 24+0 · 23+0 · 22+1 · 21+0 · 20 ) = –(128+2) = = – 13010.

Знайдемо E = (–А) · В:

01101

1111 10110

11 10110

1 10110

00000

Оскільки множене є від’ємним числом, то при складанні беруть участь одиниці множеного (отримані за рахунок інверсії незначущих нулів) при наявності ненульового біта множника.

Оскільки добуток менше нуля, то для переходу в прямий код добуток інвертуємо та додаємо 1 до молодшого розряду: 1 10000001+1 = 1 10000010.

Виконаємо перевірку:

E = 1 100000102 = – (1 · 27+0 · 26+0 · 25+0 · 24+0 · 23+0 · 22+1 · 21+0 · 20) = – (128+2) = = – 13010.

Знайдемо F = (–А) · (–В):

10011

1111 10110

111 10110

01010

Оскільки множене є від’ємним числом, то при складанні беруть участь одиниці множеного (отримані за рахунок інверсії незначущих нулів) при наявності ненульового біта множника. При множенні на знакову одиницю множника виконується корекція – складено (– [– А] дк ) = [+А] дк = 0 1010.

[F] дк = 0 10000010. Оскільки отримане число більше 0, то додатковий код збігається з прямим. Виконаємо перевірку:

F = 0 100000102 = 1 · 27+0 · 26+0 · 25+0 · 24+0 · 23+0 · 22+1 · 21+0 · 20 = 128 + 2 = = 13010.

16.8.2.Множення дійсних чисел

При множенні дійсних чисел співмножники подаються у форматі з плаваючою точкою.

Знак добутку визначається шляхом виконання логічної операції “Cкладання, що виключає”, тобто XOR над знаковими цифрами мантис чисел.

Порядок добутку визначається шляхом складання порядків співмножників.

Добуток визначається перемноженням співмножників, а саме мантис за правилами множення чисел з фіксованою комою.

Якщо в результаті множення старший біт мантиси відмінний від одиниці, то виконують нормалізацію мантиси. Для нормалізації мантиси виконують лінійний зсув мантиси вліво на 1 розряд і зменшують порядок на одиницю. Процедуру повторюють до появи в старшому біті мантиси одиниці.





Дата публикования: 2014-12-08; Прочитано: 403 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...