Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_4_Двоичная арифметика.doc
Скачиваний:
24
Добавлен:
10.06.2015
Размер:
114.69 Кб
Скачать

Вычисление произведения а*в

Умножение в двоичной системе

*

0

1

0

0

0

1

0

1

Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в арифметическо-логическом устройстве (АЛУ) имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число ноль. В процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции — окончательный результат.

Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения.

Для иллюстрации умножим

А = 988,15(10)= 1 1 1 1 0 1 1 1 0 0. 0 0 1 0 0 1 1(2) на

В = 547,58(10) = 1 0 0 0 1 0 0 0 1 1. 1 0 0 1 0 1 0(2)

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

Таким образом, кроме операции сложения чисел для получения произведения необходима операция сдвига чисел. При этом появляется возможность сдвигать множимое или сумму частных произведений, что даёт основание для разных методов реализации операции умножения.

*

Множимое 1 1 1 1 0 1 1 1 0 0. 0 0 1 0 0 1 1

Множитель 1 0 0 0 1 0 0 0 1 1. 1 0 0 1 0 1 0

+

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1

1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1

+

1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0

1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1

+

1 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 1 1 0

1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1

+

1 1 0 0 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 0

1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1

+

1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0

1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1

+

1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0

1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1

1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0.0 1 1 1 0 1 1 1 1 1 1 1 1 0

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

А*В = 988,15*547,58=541091,177

Перевод числа с помощью схемы Горнера:

1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0. 0 1 1 1 0 1 1 1 1 1 1 1 1 0=

19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 - 9 -10 -11 -12 -13 -14

=1*219+ 1*214 + 1*28 + 1*27 + 1*25 + 1*2-2+ 1*2-3 1*2-4 1*2-6 1*2-7+ 1*2-8 + 1*2-9 +

+ 1*2-10+ 1*2-11+ 1*2-12+1*2-13 = 524288+16384+256+128+32+0,125+0,0625+0,015625+

+0,0078125+0,00390625+0,001953125+0,0009765625+0,0004882125+0,000244140625++0,0001220703125≈541091,177