Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Автоматы-Лекции.doc
Скачиваний:
154
Добавлен:
23.02.2016
Размер:
4.16 Mб
Скачать

4.5. Множення чисел на двійковому суматорі оберненого коду

 

Розглянемо правила множення операндів, заданих у оберненому коді.

Добуток обернених кодів співмножників дорівнює оберненому коду результату тільки у випадку позитивного множника.

Нехай множене А = [А]об, а множник В> 0. Тоді

 

АВ = [A]об 0, b1b2…bn=[A]обb1∙2-1+[A]обb2∙2-2+…+[A]обbn∙2-n

 

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

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

Приклад 4.5. Помножити на суматорі зворотного коду (структурна схема взята з прикладу 4.1) числа А = -0,10011 і В = 0,11001.

Розвязок. Спочатку записуються машинні зображення чисел:

 

= 11,01100; = 00,11001.

 

Послідовність виконуваних дій над числами представлена в табл. 4.5.

 

Відповідь: = 11.1000100100; С = АВ =- 0,0111011011.

Таблиця 4.5

Суматор

Регістр B

Примітка

00,00000

+ 11,01011

------------

11,01011

 

11,10101

+ 11,01011

------------

11,00000

 

11,10000 11,11000

------------

11,11100

+ 11,01011

10011

 

 

 

 

→11001

 

 

 

 

→01100 →00110

 

→00011

СМ: = 0; РгА: = ; РгВ: = [В'];

b5=1; СМ = [СМ] + [РгA];

 

 

 

[]; [];

b4=1; СМ:=[СМ] +[РгF];

[]; [];

 

 

b3 = 0; []; [];

b2 = 0; []; [];

b1 = 1; СМ:= [СМ] + [РгA]

[]; [];

 

Кінець

11,00111 11,10011

0001

→10001

 

 

Нехай Л = [А]об і В <0. Тоді [В]об = 1, b1b2…bn.

[В]об = 2+В-2-n. Отже, B = 0, b1b2…bn +2-n-1.

 

AB = [А]об∙0, b1b2…bn+[А]об∙2-n+ (4.8)

 

На підставі (4.8) можна сформулювати правило:

Якщо множник від’ємний, то добуток чисел на суматорі оберненого коду виходить додаванняс поправок [Л] і [А]об2- п до добутку обернених кодів співмножників.

Приклад 4.6. Помножити на суматорі зворотного коду (використовується метод 2 і структурна схема з прикладу 4.1) числа

А = -0,110101 і В = - 0,101000.

Розвязок. Спочатку записуються машинні зображення чисел:

= 11,001010; = 11,010111;= 00,110101.

Послідовність дій, вироблених над числами, показана в табл. 4.6.

Відповідь: AB = 00, 100010.

 

 

Таблиця 4.6

 

Суматор

Регістр B

Примітка

00,00000

+ 11,01011

------------

11,01011

 

11,10101

+ 11,01011

------------

11,00000

 

11,10000 11,11000

------------

11,11100

+ 11,01011

10011

 

 

 

 

→11001

 

 

 

 

→01100 →00110

 

→00011

СМ: = 0; РгА: = ; РгВ: = [В'];

b5=1; СМ = [СМ] + [РгA];

 

 

 

[]; [];

b4=1; СМ:=[СМ] +[РгF];

[]; [];

 

 

b3 = 0; []; [];

b2 = 0; []; [];

b1 = 1; СМ:= [СМ] + [РгA]

[]; [];

 

Кінець

11,00111 11,10011

0001

→10001

 

 

Таким чином, у загальному випадку на суматорі зворотного коду добуток виходить відразу зі знаком і довжиною в n розрядів, так як на останньому кроці множення додаються числа різних знаків, через що не можна до результату приписати так званий «хвіст», що зберігається в регістрі множника