Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_lab_OFK.doc
Скачиваний:
9
Добавлен:
04.11.2018
Размер:
757.25 Кб
Скачать

1.5. Множення двійкових чисел без знаку

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

1). Якщо ця двійкова цифра (розряд множника) дорівнює 1, то двійкове множене просто копіюється без змін у якості проміжного добутку;

2). Якщо цей розряд множника дорівнює 0, то проміжний добуток дорівнює 0.

Ці правила ілюструє приклад 4. Дії виконуються наступним шляхом: у першому розряді множника стоїть 1, тому у якості першого проміжного добутку копіюється значення множеного. У наступному зліва розряді множника стоїть 0, і, відповідно, другий проміжний добуток дорівнює 0000. Далі, дії повторюються.

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

Табл. ХХ Приклад 4.

0 * 0

0

1 * 0

0

0 * 1

0

1 * 1

1

1 0 0 1 - множене

* 1 1 0 1 - множник

1 0 0 1

+ 0 0 0 0 проміжні

1 0 0 1 добутки

1 0 0 1 .

1 1 1 0 1 0 1 = добуток

Отже, операція множення двійкових чисел зводиться до операцій зсуву та додавання. Крім того зауважимо, що множення двох n – розрядних чисел дає результат, який містить 2n бітів.

Відомі два наступні основні способи виконання операції множення:

а) Множення, починаючи з молодших розрядів множника, із зсувом вліво, процес починається з молодшого розряду множника;

б) Множення, починаючи із старших розрядів множника, із зсувом вправо, процес починаючи із старших розрядів множника:

1101 - множене 1101 - множене

* 1101 - множник * 1101 - множник

1101 1101

+ 0000 + 1101

1101 0000

1101 1101

10101001 - добуток 10101001 - добуток

а) б)

Схема множення із зсувом СДП вправо подана на наступному малюнку.

На цьому малюнку позначено:

  • A(a3, a2, a1, a0) i B(b3, b2, b1, b0) – двійкові 4-ри розрядні числа – сомножники;

  • Р – добуток;

  • ДПіпроміжні добутки.

Зауважимо, що операція множення числа на 10 ± n - основу системи числення в степені ± n, рівноцінна зсуву даного числа вправо на n розрядів, якщо степінь додатна, і вліво, якщо степінь від’ємна.

Хоча процес аналізу розрядів множника і додавання множенного із самим собою стільки разів, скільки одиниць у множнику, простий, він вимагає достатньо великих витрат часу. Сумування проміжних добутків (ДП) виконується звичайно не на кінцевому етапі, а по мірі їх отримання. Це дозволяє не зберігати всі ДП, тобто скорочує апаратні витрати.

У залежності від способу отримання суми ДП (СДП) можливі чотири варіанти реалізації “традиційної” схеми множення:

1. Множення, починаючи з молодших розрядів множника, із зсувом СДП вправо і при множеному, що є нерухоме;

2. Множення, починаючи із старших розрядів множника, при зсуві СДП вліво і при множеному, що є нерухоме;

3. Множення, починаючи з молодших розрядів множника, із зсувом множеного вліво і СДП, що є нерухоме;

4. Множення, починаючи із старших розрядів множника, при зсуві множеного вправо і при СДП, що є нерухоме.

Варіанти із зсувом множеного (вар. 3, 4) на практиці використовуються менше, тому що для їх реалізації регістри множеного, СДП і суматор повинні мати розрядність 2n .

Виконання алгоритму множення без знаку із зсувом вправо для двох чисел: А = 1010 і В = 1110 показане на наступному прикладі:

Коментар

A

B

1010

* 1011

Множене

Множник

СДП

0000

початкове значення сумарного проміжного добутку

ДП0 = Ab0

P 0 = СДП + ДП0

P 0 2-1

+ 1010

01010

01010

Множення множенного на 20 розряд множника (= 1);

Перший проміжний добуток

Зсув вправо першого добутку

ДП1 = Ab1

P 1 = P 0 2-1+ ДП1

P 1 2-1

+ 1010

011110

011110

Множення множенного на 21 розряд множника (= 1);

Другий проміжний добуток

Зсув вправо другого добутку

ДП2 = Ab2

P 2 = P 1 2-1 + ДП2

P 2 2-1

+ 0000

0011110

0011110

Множення множенного на 22 розряд множника (= 0);

Третій проміжний добуток

Зсув вправо третього добутку

ДП3 = Ab3

P 3 = P 2 2-1 + ДП3

P 3 2-1

+ 1010

01101110

01101110

Множення множенного на 23 розряд множника (= 1);

Четвертий проміжний добуток

Зсув вправо четвертого добутку,

отриманий кінцевий результат.

Даний алгоритм множення без знаку із зсувом вправо можна описати таким чином:

1. Первинне значення СДП приймається таким, що дорівнює 0;

2. Аналізується наступна цифра множника (аналіз починається з молодшого розряду). Якщо він дорівнює 1, то до СДП додається множене, інакше додавання не виконується;

3. Виконується зсув СДП вправо на один розряд;

4. Пункти 2 і 3 повторюються для усіх цифрових розрядів множника.

Аналогічним шляхом реалізуються і інші варіанти алгоритмів множення двійкових чисел без знаку.

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