![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Знайти добуток С = А · В в додатковому коді, де А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; Прочитано: 426 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!