Реалізація множення в форматі ПЗ
Запис операції в загальному вигляді виглядає так: rn rn Як видно з цього вислову, в порядку результуючого числа присутній зайве доданок "- sh ". rn Результат можна записати в узагальненому вигляді як: rn rn Для операції множення мантісса результатів формується як , а порядок результату повинен формуватися таким чином : rn rn Причому, щоб уникнути переповнення, обов'язково дії слід виконувати в зазначеній послідовності. rn Для множення мантісс можна застосувати алгоритм наступний алгоритм: послідовно з молодших розрядів аналізується черговий біт мантісси m 1 : якщо m 1 ( i ) = 1, то виконується . Після цього відбувається зсув mR вправо. Якщо m 1 ( i ) = 0, то підсумування не провадиться, а зсув виконувати потрібно. rn При обчисленні порядку eR може вийти значення, що перевищує . Це ситуація переповнення при множення, яка повинна контролюватися. Якщо eR <0, то це ситуація втрати порядку (дуже маленький результат), яку теж треба перевірити. rn Значення мантісси може вийти (оскільки кожна з мантісс виглядає як m = 1, f ), тому може знадобитися нормалізація мантісси результату шляхом зсуву вправо на 1 розряд з відповідною корекцією порядку результату: .
|