Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
@Мельник_А.О._-_Архітектура_компютера.docx
Скачиваний:
0
Добавлен:
19.01.2020
Размер:
13.82 Mб
Скачать

6Лл.З. Множення двійкових чисел із знаками

При множенні чисел, представлених в оберненому коді, найпростіше перевести мно­жене і множник в прямий код та виконати операції в цьому представленні, а при від’єм­ному результаті провести інвертування його значення.

Існує метод множення двійкових чисел, представлених в доповняльному коді, без перетворення в прямий код. В цьому випадку множення виконується за формулою:

  1. = Хї = ^2(У_ - У„_, )2‘ = Х{¥х - У0)2° +Х(У2- К )2\ +... + - У„_2 )2^п

/=0

Значення розряду множника, на який здійснюється множення на і-му кроці, визна­чається з виразу:

  1. якщо У: = У ,

  2. я

    У-У =

    і+і і

    кщо У = 0, У
    +1 = 1,

-1, якщо У = 1, У+1 = 0.

При цьому добуток формується відповідно до виразу: г = ХУ= Х(-Гг + (2° - 2 і) + У2 (2і - 22) +...+ Уг (2"Ч) - 2“') +... + Уп_х (2“'2) - 2~(/1,)))

= (-Г02°+^У2-')Х.

і=1

Результат множення також отримується в доповняльному коді. На основі даного ви­разу та використання підходу, застосованого в п. 6.4.4.2, можна побудувати графи відпо­відних алгоритмів хмноження двійкових чисел в доповняльному коді.

  1. Прискорене множення двійкових чисел за методом Бута

Особливістю цього методу є те, що аналізуються відразу два розряди множника. Цей метод широко застосовується. Пришвидшення досягається тим, що при обрахуванні до­бутку за цим методом зменшується кількість додавань. Суть методу можна виразити наступними формулами для обчислення часткових добутків:

2м = -' 2Х > якиі°

VI)-'10";

, якщо У(,м) ="00","11";

= 0; і = 0,л-1; Ги) = 0; 2я=г±Х-У,

де: X, У, 2 - множене, множник і добуток відповідно, 7і - сума часткових добутків на і-му етапі, У(і, і-1) - і-й та і-1 розряди множника, п - кількість розрядів операндів X та У без врахування знакового розряду.

Можна проілюструвати цей алгоритм за допомогою блок-схеми, показаної на рис. 6.21.

Рис. 6.21. Блок-схема множення двійкових чисел за методом Бута Тут знаком —> позначена операція арифметичного зсуву праворуч.

Тепер розглянемо приклад:

Х=0101 0101; ¥=01101011.

Результати проміжних обчислень наведені в табл. 6.9.

Таблиця 6.9

г- і •

Z

і

Y (Y )| Y

' (п-і-ІГ1 (-1)

операція

Z , ... 1+1

0

0000 0000 0000 0000

0110 1011|0

7 _Z#-JT /+1 2

1101 0101 1000 0000

1

1010 1011 0000 0000

0110 10[11 0

z =z' ,+1 2

1110 1010 1100 0000

2

1110 1010 1100 0000

0110 (10110

7 + X

М 2

0001 1111 1110 0000

3

0001 1111 1110 0000

01)10 1011 0

z =z'-x 1+1 2

1110 0101 0111 0000

4

1110 0101 0111 0000

0110 1011|0

7

,-+! 2

0001 1101 0011 1000

5

0001 1101 0011 1000

0110 1011| 0

7 _Z«-^ *+1 2

1110 0100 0001 1100

6

1110 0100 0001 1100

0110 1011|0

z =z1+1 2

1111 00100000 1110

7

1111 0010 0000 1110

0110 1011|0

7

м 2

0010 0011 1000 0111

Таким чином

0101 0101 •01101011 -0010 0011 1000 0111.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]