Booth's Multiplication Algorithm & Multiplier, including Booth's Recoding and Bit-Pair Recoding Method (aka Modified Booth Algorithm), Step by Step Calculator
Booth's Multiplication Algorithm is a multiplication algorithm that multiplies two signed binary numbers in two's complement notation.
Question Examples:
Question 1: Multiply 3 times -25 using 6-bit numbers
Answer:
310 = 00 00112
-2510 = 10 01112
Multiplier | Booth Multiplier | |
Bit[i] | Bit[i-1] | |
0 | 0 | 0 |
0 | 1 | +1 |
1 | 0 | -1 |
1 | 1 | 0 |
Multiplier: | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
Booth Recoding: | -1 | 0 | +1 | 0 | 0 | -1 |
Click on the zeros in "Booth Recoding" above to view the pair of bit of each conversion!
0 | 0 | 0 | 0 | 1 | 1 | |||||||
× | -1 | 0 | +1 | 0 | 0 | -1 | ||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | ||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | |
1 | 1 | 1 | 1 | 1 | 0 | 1 | ||||||
1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
Booth Multiplier | Bit-Pair Recoding Multiplier | ||
Bit[i] | Bit[i-1] | Bit[i] | Bit[i-1] |
1 | -1 | 0 | 1 |
-1 | 1 | 0 | -1 |
1 | 0 | 0 | 2 |
-1 | 0 | 0 | -2 |
Multiplier: | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
Booth Recoding: | -1 | 0 | +1 | 0 | 0 | -1 | |
Bit-Pair Recoding: | -2 | +2 | -1 |
Same as the Booth Recoding above, a red zero is added after the least significant bit (LSB) for the Booth Recoding conversion
0 | 0 | 0 | 0 | 1 | 1 | ||||||||
× | 0 | -2 | 0 | +2 | 0 | -1 | |||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | |||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | |||||
1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
Question 2: Compute C = A × B using the Booth algorithm to multiply the two significands. (Both numbers have to be in 2’s complement form.)
Sa = 01.1000001 (including a sign bit)
Sb = 01.1111011 (including a sign bit)
Answer:
Word Length = 9
Binary's decimal point position = Multiplicand least significant bit (LSB) × Multiplier LSB = 2-7 × 2-7 = 2-7 + -7 = 2-14
(The 15th bit from right to left contains decimal point)
Multiplier | Booth Multiplier | |
Bit[i] | Bit[i-1] | |
0 | 0 | 0 |
0 | 1 | +1 |
1 | 0 | -1 |
1 | 1 | 0 |
Multiplier: | 0 | 1. | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |
Booth Recoding: | +1 | 0. | 0 | 0 | 0 | -1 | +1 | 0 | -1 |
Click on the zeros in "Booth Recoding" above to view the pair of bit of each conversion!
0 | 1. | 1 | 0 | 0 | 0 | 0 | 0 | 1 | ||||||||||
× | +1 | 0. | 0 | 0 | 0 | -1 | +1 | 0 | -1 | |||||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | |||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | ||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | |
0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | |||||||||
0 | 0 | 1 | 0. | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 |
Booth Multiplier | Bit-Pair Recoding Multiplier | ||
Bit[i] | Bit[i-1] | Bit[i] | Bit[i-1] |
+1 | -1 | 0 | +1 |
-1 | +1 | 0 | -1 |
+1 | 0 | 0 | +2 |
-1 | 0 | 0 | -2 |
Same as Booth Recoding: | |||
0 | -1 | 0 | -1 |
0 | +1 | 0 | +1 |
0 | 0 | 0 | 0 |
Multiplier: | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |
Booth Recoding (for Bit-Pair Recoding Method): | 0 | +1 | 0. | 0 | 0 | 0 | -1 | +1 | 0 | -1 | |
Bit-Pair: | +1 | 0 | 0 | -1 | -1 |
Same as the Booth Recoding above, a red zero is added after the least significant bit (LSB) for the Booth Recoding conversion
Click on the zeros in "Booth Recoding" above to view the pair of bit of each conversion!
0 | 1. | 1 | 0 | 0 | 0 | 0 | 0 | 1 | ||||||||||||
× | +1 | 0. | 0 | 0 | 0 | 0 | -1 | 0 | -1 | |||||||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | |||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | |
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | |||||||||
0 | 0 | 0 | 0 | 1 | 0. | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 |