Множення чисел в ЕОМ

16.8.1 Множення цілих чисел

Множення цілих чисел виконується в прямому і додатковому кодах.

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

Якщо множник є негативним числом, то необхідна корекція результату. Для корекції результату при множенні множеного А на знакову одиницю множника В необхідно скласти не [А]дк, а [– А]дк. Якщо множене є негативним числом, то в складанні беруть участь одиниці, отримані за рахунок інвертування незначущих нулів множеного. Результат отримуємо в додатковому коді. Якщо результат є від’ємним числом, то для переведення його в прямий код необхідно результат проінвертувати та додати 1 до молодшого розряду.

Приклад 16.9

Знайти в прямому коді добуток С = А·В, де А10 = 8, В10 = 6.

[А]дк = 0 1000 [В]дк = 0 110. Знак 0 + 0 = 0.

Добуток:

0110

1000

Виконаємо перевірку: С = 110002 = 1·25+1·24+0·23+0·22+0·21+0·20 = 4810.

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

Множення двох позитивних чисел у додатковому коді аналогічно множенню чисел у прямому коді.