![](/user_photo/2706_HbeT2.jpg)
- •Алгоритм множення починаючи з молодших розрядів множника і зсувом розрядів суматора вправо
- •2. Алгоритм множення починаючи з молодших розрядів множника і зсувом розрядів множеного вліво
- •Алгоритм множення починаючи з старших розрядів множника і зсувом розрядів суматора вліво
- •Алгоритм множення починаючи з старших розрядів множника і зсувом розрядів множеного вправо
ОСНОВНІ АЛГОРИТМИ КОМП'ЮТЕРНОГО МНОЖЕННЯ
В ПРЯМОМУ КОДІ
Операція множення на сучасних ЕОМ у більшості випадків виконується сумуванням зсунутих на один або декілька розрядів часткових добутків, кожний з яких є результатом множення множеного на відповідний розряд множника.
Найбільш просто множення виконується у прямому коді. При цьому на першому кроці визначається знак добутку. Це легко робиться за допомогою логічної операції додавання за модулем 2, таблиця якого має вигляд
-
0
0
0
0
1
1
1
0
1
1
1
0
Після визначення знаку виконується перемноження модулів співмножників за правилами двійкової арифметики. Результату присвоюється одержаний знак.
Оскільки множення виконується в двійковій системі числення, то часткові добутки або дорівнюють 0 (при множені на 0), або дорівнюють самому співмножнику (при множені на 1), зсунутому на відповідну кількість розрядів.
Приклад.
Задані числа: Х=1101,
Y=1011.
Знайти добуток
.
Можливі два варіанти множення: а) із зсувом розрядів множеного вліво; б) із зсувом розрядів множеного вправо.
а)
б)
– множене
– множене
– множник
– множник
– множення
починається з молодших розрядів;
зсув вліво (←)
– множення
починається з старших розрядів; зсув
вправо (→)
Далі будемо вважати,
що множене Х
і множник
– правильні двійкові дроби вигляду
і
,
де
.
Тоді добуток абсолютних величин операндів
і
можна
представити як
. (1)
Вирази вигляду
,
називають частковими
добутками.
З наведеного вище прикладу випливає, що керування процесом множення може початися як з молодших розрядів множника, так і з старших.
Оскільки множення
на
еквівалентно зсуву вправо, то обчислення
добутку Z
зводиться до формування часткових
добутків
,
їх зсуву і підсумовуванню з урахуванням
ваг, які визначаються величинами
.
При цьому повну суму (добуток) можна одержати двома способами:
зсувом множеного на потрібну кількість розрядів і додаванням одержаного чергового часткового добутку до раніше накопиченої суми;
зсувом суми раніше накопичених часткових добутків на один розряд з наступним додаванням до зсунутої суми не зрушуваного множеного або нуля.
Базуючись на вищесказаному можна створити чотири основних алгоритми комп’ютерного множення.
Алгоритм множення починаючи з молодших розрядів множника і зсувом розрядів суматора вправо
Даний алгоритм
множення використовує представлення
добутку
у вигляді схеми Горнера для множення
многочленів
(2)
Рис. 1
Звідси випливає, що добуток Z може бути отриманий за рекурентною формулою
(3)
де
– сума i
часткових добутків.
Таким чином, у
даному випадку множення починається з
молодших розрядів множника, а сума
часткових добутків на кожному кроці
зсувається вправо рис. 1 б). Число кроків
множення дорівнює п,
останній крок закінчується зсувом. ГСА
такого множення представлена на рис. 1
б), де
– цифра в молодшому розряді регістра
множника РY
на даному кроці множення ("поточна"
цифра множника), ЛЧК
– лічильник
числа кроків множення. Довжина регістрів
операндів складає п
розрядів, регістра результату – 2п
розрядів,
лічильника кроків –
розрядів.
Приклад 1.
Складемо цифрову діаграму множення
чисел
і
,
(табл. 1).
Таблиця 1
-
→
→
ЛЧК
Пояснення
1011
110 1
00000000
000
Вихідний стан
1011
10110000
Результат підсумовування
011 0
01011000
001
Зсув
001 1
00101100
010
Зсув
1011
11011100
Результат підсумовування
000 1
01101110
011
Зсув
1011
1 00011110
100
Результат підсумовування
10001111
Зсув
END
Результат:
2. Алгоритм множення починаючи з молодших розрядів множника і зсувом розрядів множеного вліво
Другий основний алгоритм множення заснований на представленні добутку у вигляді
(4)
,
де
.
Множення, таким чином, зводиться до
обчислень за рекурентною формулою
, (5)
де
.
Рис. 2
У данному
випадку
множення
починається з молодших розрядів множника,
сума частинних добутків нерухома, а
множене в процесі множення зсувається
вліво (рис. 2,а). Число кроків дорівнює
п,
а закінчується множення підсумовуванням.
Регістр множника повинний мати довжину
в п
розрядів, регістри множеного і суми
часткових добутків – по 2п
розрядів.
Перед початком множення множене повинно
бути записане у відповідний регістр зі
зсувом вправо на п
розрядів для того, щоб було сформоване
значення
.
ГСА такого множення показана на рис. 2,
б.
Приклад 2.
Складемо цифрову діаграму множення
чисел
і
,
за другим основним алгоритмом (табл.
2).
Таблиця 2
-
←
→
ЛЧК
Пояснення
0000 1011
110 1
0000 0000
001
Вихідний стан
0000 1011
0000 1011
Результат підсумовування
0001 0110
011 0
0000 1011
010
Зсув
0010 1100
001 1
0000 1011
011
Зсув
0010 1100
0011 0111
Результат підсумовування
0101 1000
000 1
0011 0111
100
Зсув
0101 1000
10001111
Результат підсумовування
END
Результат: