Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Алгоритм умножения чисел с ФЗ в ДК с автоматической коррекцией



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

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

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

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

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

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

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

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

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

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

Пример 6. Перемножить числа А=-18(10)=-10010(2); В=27(10)=11011(2), представив их в ДК, применить алгоритм с автоматической коррекцией и выполнить умножение I и IV способами.

М=25 АПК =1,10010 АДК=1,01110 - множимое
ВПК =0,11011 ВДК=0,11011 - множитель

 

IV способ умножения Таблица

 

       
   


Множитель

  Множимое Сумма ЧП Пояснения
  0,11011   1,0111000000 0,0000000000 1,0111000000  
    1,0111000000 Сложение
1,10110 1,1011100000   Сдвиги
1,01100 1,1101110000 1,0111000000 0,0010010000 Сдвиги
    1,1001010000 Вычитание
0,11000 1,1110111000 1,1001010000 1,1110111000 Сдвиги
    11,1000001000 Сложение
1,10000 1,1111011100 Сдвиги
1,00000 1,1111101110 1,1000001000 0,0000010010 Сдвиги
0,00000 1,111111011 1,1000010010 Вычитание Сдвиги

 

Получено произведение в дополнительном коде:

(А×В)ДК=1,1000011010.

Проверка результата. Масштаб произведения МА×МВ=210.

(А×В)ПК=1,0111100110 (х210).

А×В=-111100110(2)=-486(10).

Выполним умножение I способом и обратить внимание на необходимость сохранения предыдущей цифры множителя при сдвиге его вправо (в первом такте соседней младшей цифрой всегда является «0»).Аналогично следует поступать при умножении II способом.

I способ умножения Таблица

 

  Множитель   Сумма ЧП Пояснения
0,110110 0,0000000000 0,10010  
  0,1001000000 Вычитание
0,011011 0,0100100000 Сдвиги
0,001101 0,0010010000 1,01110 Сдвиги
  1,1001010000 Сложение
0,000110 1,1100101000 0,10010 Сдвиги
  10,0101101000 Вычитание
0,000011 0,0010110100 Сдвиги
0,000001 0,0001011010 1,01110 Сдвиги
  1,1000011010 Сложение Нет последнего сдвига!

 

Получено произведение в дополнительном коде:

(А×В)ДК=1,1000011010.

Проверка результата. Масштаб произведения МА×МВ=210.

(А×В)ПК=1,0111100110 (х210).

А×В=-111100110(2)=-486(10).

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.