Лекція№1с. Алгоритми множення в еом. Множення чисел з фіксованою комою
При множенні чисел в прямому коді у двійковій системі числення знакові та числові розряди оброблюються окремо.
Для визначення знаку добутку здійснюють операцію додавання по mod 2 цифр, які записані у знакових розрядах операндів. Будемо мати на увазі, що множник Х та множене У – правильні двійкові дроби виду
Тоді добуток абсолютних величин операндів Х та У можна представити так
Z = X x Y = Yx12-1 + Yx22-2 + ...+Yxi2-i +...+Yxn-12n-1 + Yxn2n =
= x1y12-2 +x1y22-3 + x1y32-4 + ...+x1yn 2-n-1 =
= + x2y12-3 + x2y22-4 +...+ x2yn-12-n-1 + x2yn2-n-2 +
+ x3y12-4 +...+ x3yn-22-n-1 + x3yn-12-n-2 + x3yn2-n-3 +
.......................................................................................................
+ xn y12-n-1 + xn y22-n-2 + xny32-n-3 + ... + xnyn2-2n =
____________________________________________________
= z12-1 + z22-2 + z32-3 + z42-4 + ... + zn+12-n-1 + zn+22-n-2 + zn+32-n-3 + ... + z2n2-2n.
Yxi – частковий добуток
xi yi – розрядний добуток
Оскільки множення на 2-і еквівалентно зсуву вправо, обчислювання добутку Z зводиться до формування часткових добутків Yxi, їх зсуву та додавання з урахуванням ваги, яка визначається величинами 2-і
В свою чергу
|
|
|
Приклад. |
Х= |
х4 |
х3 |
х2 |
х1 |
х0 |
|
Х |
= |
1 |
0 |
1 |
0 |
1 |
||||
|
|
|
Y= |
y4 |
y3 |
y2 |
y1 |
y0 |
|
Y |
= |
1 |
0 |
1 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Z=X*Y= |
х4 |
х3 |
х2 |
х1 |
х0 |
|
|
* |
1 |
0 |
1 |
0 |
1 |
|||||
|
|
|
|
y4 |
y3 |
y2 |
y1 |
y0 |
|
|
|
|
1 |
0 |
1 |
|||
|
|
+ |
|
x4y0 |
x3y0 |
x2y0 |
x1y0 |
x0y0 |
|
+ |
|
1 |
0 |
1 |
0 |
1 |
||
|
|
x4y1 |
x3y1 |
x2y1 |
x1y1 |
x0y1 |
|
|
0 |
0 |
0 |
0 |
0 |
|
||||
|
|
x4y2 |
x3y2 |
x2y2 |
x1y2 |
x0y2 |
|
|
|
1 |
0 |
1 |
0 |
1 |
|
|
||
|
x4y3 |
x3y3 |
x2y3 |
x1y3 |
x0y3 |
|
|
|
|
1 |
1 |
0 |
1 |
0 |
0 |
1 |
||
x4y4 |
x3y4 |
x2y4 |
x1y4 |
x0y4 |
|
|
|
|
|
|
|
|
|
|
|
|
||
z8 |
z7 |
z6 |
z5 |
z4 |
z3 |
z2 |
z1 |
z0 |
|
|
|
|
|
|
|
|
Множення У та Х може бути реалізовано шляхом виконання визначеного циклічного процесу, де кожний крок складається із формування чергового часткового добутку, його зсуву відносно суми часткових добутків, яка вже накопичена та підсумовування до цієї суми.
Правила виконання цих дій залежить від форми виразу Z=X*Y.
Відомо 4 основних алгоритми множення.