Рубрики

ВОРОТА | Gate IT 2008 | Вопрос 40

Два числа, приведенные ниже, умножаются с использованием алгоритма Бута.

Multiplicand: 0101 1010 1110 1110
Множитель: 0111 0111 1011 1101

Сколько сложений / вычитаний требуется для умножения двух вышеуказанных чисел?
(А) 6
(Б) 8
(С) 10
(D) 12

Ответ: (Б)
Объяснение: Алгоритм Бута: сначала возьмите 2 дополнения к данному числу, если число отрицательное, затем добавьте 0 в младший бит

Then, for each pair from LSB to MSB (add 1 bit at a time):
00 = 0, 01 = +1, 10 = -1, 11 = 0

Алгоритм Бута основан на множителе в двоичном представлении: 0111 0111 1011 1101

= Now, append 0 into LSB of (0111 0111 1011 1101) = 0111 0111 1011 1101 0
Now Booth's code (add 1 bit at a time, from LSB to MSB):
= 01, 11, 11, 10, 01, 11, 11, 11, 10, 01, 11, 11, 11, 10, 01, 10
= +1 0 0 -1 +1 0 0 0 -1 +1 0 0 0 -1 +1 -1

Следовательно, требуется 4 вычитания и 4 сложения, всего 8 сложений / вычитаний.

Таким образом, вариант (B) является правильным.
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | Gate IT 2008 | Вопрос 40

0.00 (0%) 0 votes