Тема 1.2 Множення та ділення в ЕОМ
Алгоритми множення в ЕОМ
Найпростіше множення виконується у прямому коді. У разі представлення чисел з фіксованою комою воно реалізується у два етапи.
Правила визначення знаку добутку | На першому етапі визначається знак добутку шляхом додавання за модулем два цифр знакових розрядів співмножників. | |
Обчислення вручну | Обчислення в машині | |
Ü | ||
На другому етапі здійснюється множення модулів співмножників, потім, у разі потреби, округлення модуля добутку, після чого до модуля результату дописується його знак, що визначений на першому етапі.
Множення У та Х може бути реалізовано шляхом виконання певного циклічного процесу, де кожний крок складається із формування чергового часткового добутку, його зсуву відносно суми часткових добутків, яка вже накопичена та підсумовування до цієї суми. Правила виконання цих дій залежить від форми виразу Z=X*Y. Відомо 4 основних алгоритми множення. Фактично вони всі базуються тільки на двох операціях: додавання та зсув.
Виконання операцій зсуву
Операція зсуву виконується в регістрах як вбудована мікрооперація. Розрізняють арифметичний, модифікований та логічний зсув.
Розглянемо ці різновиди операцій зсуву. Нехай маємо регістр в який записаний операнд у прямому коді (ПК).
Арифметичний зсув прямого коду (ПК) операнду вліво та вправо на і розрядів еквівалентний відповідно множенню та діленню початкового операнду на 2і. | ||||||||||||||||||||
Приклад 1. | ← | 0↓ | 0↓ | → | ||||||||||||||||
; | ||||||||||||||||||||
Арифметичний зсув операндів, який представлений оберненим або додатковим кодом, називається модифікованим.
Алгоритм модифікованого зсуву операндів, які представлені оберненим кодом, має наступний вигляд: в розряди, які звільняються при зсуві в будь-якому напрямку записуються цифри знакового розряду. “1” якщо операнд від’ємний, “0” – додатній.
Приклад 2. 1.0101 – прямий код -5
1.1010 – обернений код -5
Зсув вліво | Зсув вправо | |
1.0101 1.1011 | 1.1101 1.1110 | На один розряд На два розряди |
Якщо операнд представлений додатковим кодом, то при зсуві вправо в розряди, які звільняються записуються цифри знакового розряду, а при виконанні зсуву вліво будуть в ці розряди записуватись “0”.
Зсув, який виконується усіма розрядами, включаючи знаковий розряд, називається логічним.
Завдання для самоконтролю
1. Задано числа Х=2310 та У=-1910. Переведіть їх в двійкову систему числення та виконайте наступні операції:
А) арифметичний зсув в прямому коді L3PX та R2PY;
Б) модифікований зсув в оберненому коді L2PY та R3PX;
В) модифікований зсув в додатковому коді L2PY та R3PX;
Г) зсув по колу на два розряди;
Д) логічний зсув вправо та вліво на три розряди.