Visualization of Booth Multiplication

A = 3
00011
B = -7
11001
Bits =
StepSub StepActionPartial ProductAdditional Bit
00Init
00000011001
0
01Sub
11110111001
0
12Shift
11111011100
1
13Add
00000111100
1
24Shift
00000011110
0
35Shift
00000001111
0
36Sub
11110101111
0
47Shift
11111010111
1
58Shift
11111101011
1
Answer is -21

Algorithm
  1. `Partial Product` is initialized to `B` (zero extension).
  2. For each step after `Init` or `Shift`, check the LSB of `Partial Product` and `Additional Bit` to determine the next step.
  3. `Add` or `Substract` `A` shifted by `Bits` or `Shift` again.
  4. Repeat until `Shift` `Bits`-times.
Caveats
  1. `Partial Product` has an additional sign bit to handle `A` = -2^{n-1} case.
  2. `Step` column is counted by the number of `Shift` steps.