Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5_Алг_комп_множ_в_ ДК_2.doc
Скачиваний:
3
Добавлен:
21.12.2018
Размер:
432.64 Кб
Скачать

5.3. Алгоритми множення в доповняльному коді без

корекції в кінці операції множення

З викладеного випливає, що для корекції результату множення доповняльних кодів операндів необхідно в кожнім випадку за комбінацією знаків операндів визначати величину корекції, а потім виконувати один - два кроки підсумовування. Однак цього можна уникнути, якщо корекцію об’єднати з процесом підсумовування часткових добутків. Розглянемо можливі варіанти реалізації такого об’єднання.

1.Якщо , то їхній добуток повинен бути від’ємним і представленим доповняльним кодом. Тоді можна записати, що

.

Тут кожен частковий добуток вигляду дорівнює або 0, або . Відомо, що доповняльний код суми декількох операндів дорівнює сумі доповняльних кодів цих самих операндів. Отже, якщо зсув множеного вправо на розрядів виконувати за правилами зсуву модифікованого додаткового коду, а потім виконати підсумовування часткових добутків за правилами підсумовування доповняльних кодів (із втратою одиничного переносу зі знакового розряду), то буде отриманий правильний добуток вихідних чисел у доповняльному коді, тобто, у цьому випадку . Таким чином, при виконанні зазначених правил не потрібно додаткових кроків для корекції добутку.

2. При від’ємному множнику Х і додатному множеному Y, як показано вище для випадку множення доповняльних кодів операндів з урахуванням їх знаків, псевдодобуток має вигляд . Разом з тим, частковий добуток, який формується при множенні на знакову цифру множника, дорівнює . Отже, якщо при множенні на знакову цифру множника не додавати останній частковий добуток до їхньої суми, а відняти його, то тим самим буде зменшене на . Більше того, якщо для представлення від’ємного останнього часткового добутку скористатися доповняльним кодом, тобто записати його у вигляді , то при його додаванні не тільки буде відкоректована числова частина добутку, але і сформується правильний його знак. На підставі цього можна побудувати такий алгоритм множення операндів у доповняльному коді. При від’ємному множнику вважають його представленим у надлишковій двійковій системі числення з цифрами {-1,0,1}, а знаковий розряд множника – від’ємною цифрою. Далі за звичайною методикою виконують множення множеного (разом зі знаковим розрядом) на всі розряди множника. На останньому кроці (тобто, при множенні на знаковий розряд) виконують операцію замість . Якщо ж множник додатний, то його знаковий розряд не змінюють, а множення на знаковий розряд виконується як звичайно (можна вважати, що виконують операцію +0). ГСА такого

множення на базі першого основного алгоритму наведено на рис.1, де в нижній умовній вершині вказує на перевірку тут знакової цифри множника.

3. Якщо Х<0, Y<0, то корекція результату може бути зроблена об'єднанням двох попередніх варіантів, тобто, при множенні на знаковий розряд множника виконують віднімання, а підсумовування і зсуву часткових добутків роблять з використанням модифікованого додаткового коду. Очевидно, що час множення в цьому випадку складе

0 1

0 1

0 1

Рис.1

Приклад 3. Скласти цифрову діаграму множення чисел і в доповняльному коді без корекції в кінці операції (табл.2). Операцію множення виконаємо з використанням першого основного алгоритму.

Для виконання операції множення знаходимо модифіковані доповняльні коди операндів: та величину корекції, яка обчислюється за формулою

.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]