МНОЖЕННЯ ДВІЙКОВІЙ-ДЕСЯТКОВИХ ЧИСЕЛ

Як відомо, множення чисел зводиться до підсумовування часткових творів, отриманих при множенні поточного розряду множника В на множимое Л. Для двійкових чисел часткові твори рівні множимо або нулю. Тому множення двійкових чисел зводиться до послідовного підсумовування часткових творів із зсувом. Для десяткових чисел часткові твори можуть приймати 10 різних значень, включаючи нуль. Тому для отримання часткових творів замість множення може бути використано багаторазове послідовне підсумовування множимо Л. Для ілюстрації алгоритму множення десяткових чисел скористаємося прикладом.

Приклад 2.26. Па рис. 2.15, а наведено множення цілих десяткових чисел Л х б = 54 х 23, починаючи з молодшого розряду множника. Для множення використовується наступний алгоритм:

• за початковий стан приймається 0. Перша сума виходить додатком до нуля множимо Л = 54. Потім до першої сумі знову додається множене А = 54. І нарешті, після третього підсумовування отримує перші часткове твір, рівне 0 '+ 54 + 54 + 54 = 162;

Алгоритм множення цілих десяткових чисел 54 х 23 (а) і принцип його реалізація (б)

Мал. 2.15. Алгоритм множення цілих десяткових чисел 54 х 23 (а) і принцип його реалізація (б)

  • • виконується зрушення першого часткового твори на один розряд вправо (або множимо вліво);
  • • до старших розрядів першого часткового твори двічі додається множене: 16 + 54 + 54 = 124;
  • • після об'єднання отриманої суми 124 з молодшим розрядом 2 першого часткового твори знаходиться твір тисяча двісті сорок дві.

Розглянемо на прикладі можливість схемної реалізації алгоритму з використанням операцій додавання, віднімання і зсуву.

Приклад 2.27. Нехай в регістрі R t постійно зберігається множимое А = 54. У вихідному стані в регістр R 2 поміщаємо множник В = 23, а регістр R 3 завантажуємо нулями. Для отримання першого часткового твори (162) до вмісту регістра тричі додаємо множимое А = 54, зменшуючи при цьому кожен раз на одиницю вміст регістра R T Після того як молодший розряд регістра R., стане рівним нулю, зробимо зрушення вправо на один розряд вмісту обох регістрів /?., і R.,. Наявність 0 в молодшому розряді R 2 в свідчить про те, що формування часткового твори завершено і необхідно зробити зрушення. Потім виконаємо дві операції додавання множимо А = 54 з вмістом регістра і віднімання одиниці з вмісту регістра R 0. Після другої операції молодший розряд регістра R., стане рівним нулю. Тому, виконавши зрушення вправо на один розряд вмісту регістрів R 3 і R Y отримаємо шукане твір Р = 1 242.

Реалізація алгоритму множення десяткових чисел в двійковій-десяткових кодах (рис. 2.16) має особливості, пов'язані з виконанням операцій додавання і віднімання

Реалізація алгоритму множення десяткових чисел в двійковій-десяткових кодах

Мал. 2.16. Реалізація алгоритму множення десяткових чисел в двійковій-десяткових кодах

(Див. Параграф 2.3), а також зсуву тетради на чотири розряду. Розглянемо їх в умовах прикладу 2.27.

Приклад 2.28. Множення чисел з плаваючою точкою. Для отримання твори чисел А і В з плаваючою точкою необхідно визначити М з = М л х М н, Р з = Р {+ Р н. При цьому використовуються правила множення і алгебраїчного додавання чисел з фіксованою точкою. Твору присвоюється знак "+", якщо множимое і множник мають однакові знаки, і знак "-", якщо їх знаки різні. При необхідності виконується нормалізація результуючої мантиси з відповідною корекцією порядку.

Приклад 2.29. Множення двійкових нормалізованих чисел:

При виконанні операції множення можуть мати місце особливі випадки, які обробляються спеціальними командами процесора. Наприклад, якщо один із співмножників дорівнює нулю, операція множення не виконується (блокується) і відразу формується нульовий результат.

 
< Попер   ЗМІСТ   Наст >