Мегаобучалка Главная | О нас | Обратная связь


Умножение чисел в дополнительном коде с автоматической коррекцией



2019-12-29 2602 Обсуждений (0)
Умножение чисел в дополнительном коде с автоматической коррекцией 5.00 из 5.00 3 оценки




Этот алгоритм разработан Бутом и является универсальным для умножения чисел в ДК. Сомножители участвуют в операции со знаковыми разрядами, которые рассматриваются как цифровые разряды числа. Результат получается сразу в дополнительном коде со знаком.

В процессе умножения анализируются две смежные цифры множителя: та, на которую выполняется умножение в данном такте – m1, и соседняя младшая цифра – m2. В двоичном множителе этой паре соответствуют четыре возможных набора – «00», «01», «10», «11», каждый из которых требует выполнения следующих действий:

1. набор «01» требует сложения множимого с предыдущей суммой частичных произведений;

2. набор «10» требует вычитания множимого из предыдущей суммы частичных произведений;

3. наборы «00» и «11» не требуют ни сложения, ни вычитания, так как частичное произведение равно нулю.

В цикле умножения в каждом такте выполняются соответствующие сдвиги на один разряд. При этом могут использоваться все четыре способа умножения с некоторыми особенностями:

1. в I способе не следует выполнять последний сдвиг суммы частичных произведений;

2. в IV способе не выполняется первый сдвиг множимого.

Это объясняется тем, что в этих тактах реализуется умножение не на цифровой, а на знаковый разряд числа.

Кроме того, при выполнении алгоритма умножения с автоматической коррекцией следует помнить о правилах сдвига отрицательных чисел в ДК: при сдвиге влево освобождающиеся младшие разряды заполняются нулями, при сдвиге вправо освобождающиеся старшие разряды заполняются единицами, т.е. реализуется арифметический сдвиг числа.

 

 

C  = -2310 = -101112

D  = 5710 = 1110012

C пк = 1,010111

D пк = 0,111001

С дк = 1,101001                                    М = 26

D дк = 0,111001 - множитель

 

Множитель Множимое Сумма ЧП   Примечания
0,1110010     0,0111001 1,111111 101001     1,111111 010010 0,000000 000000 0,000000 010111 0,000000 010111 Вычитание     Сдвиги
0,0011100 0,0001110     1,111110 100100 1,111101 001000 0,000000 010111 1,111111 010010 1,111111 101001   Сложение   Сдвиги Сдвиги
    1,111111 101001 0,000010 111000 Вычитание
0,0000111 1,111010 010000 0,000010 100001 Сдвиги
0,0000011 0,0000001 1,110100 100000 1,101001 000000   Сдвиги Сдвиги
  0,000000   1,010010 000000 0,000010 100001 1,101001 000000 1,101011 100001 Сложение     Сдвиги

Ответ:

С*Dдк  = -101011 1000012

С*Dпк = -010100 0111112

 Проверка:

(-23)10*5710=(-1311)10

 

Задание № 3 Оба операнда отрицательны. Представить их в форме с ФЗ в дополнительном коде и перемножить их 3 способом, используя алгоритм с простой коррекцией. Проверить результат.

 

 


III способ - умножение со старших разрядов множителя со сдвигом суммы частичных произведений влево.

Устройства, которые хранят операнды, регистры, имеют следующую разрядность:

1. регистры множителя и множимого – n-разрядные;

2. регистр частичных произведений – 2n-разрядный.

Суммирование множимого следует выполнять в младшие n разрядов регистра суммы частичных произведений.

Особенность III способа умножения состоит в том, что в последнем такте не следует выполнять сдвиг в регистре сумм частичных произведений.

 

Алгоритм умножения двоичных чисел в ДК с простой коррекцией:

1. определить знак произведения путем сложения по модулю два знаковых разрядов сомножителей.

2. перемножить модули сомножителей, представленных в ДК, одним из четырех способов – получить псевдопроизведение.

3. если хотя бы один из сомножителей отрицателен, выполнить коррекцию по следующим правилам:

· если один сомножитель отрицателен, к псевдопроизведению прибавляется дополнительный код от модуля положительного сомножителя;

· если оба сомножителя отрицательны, к псевдопроизведению прибавляются дополнительные коды от модулей дополнительных кодов обоих сомножителей, т.е. их прямые коды.

4. Присвоить модулю произведения знак из п.1 данного алгоритма.

 

C = -2310 = -101112

D = -5710 = -1110012

C пк = 1,010111

D пк = 1,111001                            М = 26

 

С дк = 1,101001                     

D дк = 1,000111

С дк = 0,101001 – модуль множимого

D дк = 0,000111 – модуль множителя

 

Знак произведения: 1 + 1 = 0

 

Множитель  n Сумма ЧП           2n Примечания
,000111 ,001110 ,011100 ,111000   ,000000 000000 ,000000 000000 ,000000 000000 ,0000 0 0 101001 ,000000 101001 Сдвиг Сдвиг Сдвиг Сложение Сдвиг
,110000 ,000001 010010 ,000000 101001 ,000001 111011 Сложение   Сдвиг
,100000     ,000011 110110                ,000000 101001 ,000100 011111 Сложение    

Псевдопроизведение = 0, 000100 011111

Коррекция (складываем модули операндов):

+0, 000100 011111 

0, 010111            

+0, 011011 011111

0, 111001

1, 010100 011111       

Ответ:                   

(C*D)пк =101000111112 = 131110

Проверка:

(-23)10*(-57)10 = 131110

 

 

Задание №4 Знаки операндов: С>0, D >0. Представить числа в форме с ПЗ в разрядной сетке условной машины. При перемножении мантисс использовать 4 способ умножения. Результат представить в той же разрядной сетке. Произвести проверку.

 

 


IV способ - умножение со старших разрядов множителя со сдвигом множимого вправо.

Устройства, которые хранят операнды, регистры, имеют следующую разрядность:

1. регистр множителя – n-разрядный;

2. регистры множимого и частичных произведений – 2n-разрядный.

Первоначально множимое помещается в старшие разряды регистра, а затем в каждом такте сдвигается на один разряд вправо.

Особенность IV способа умножения состоит в том, что перед началом цикла умножения следует множимое сдвинуть на один разряд вправо.

 



2019-12-29 2602 Обсуждений (0)
Умножение чисел в дополнительном коде с автоматической коррекцией 5.00 из 5.00 3 оценки









Обсуждение в статье: Умножение чисел в дополнительном коде с автоматической коррекцией

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (2602)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)