Systematic Multiplication of Using Booth’s Algorithm
Booth’s algorithm performs signed binary multiplication by repeatedly deciding—based on pairs of bits—whether to add, subtract, or do nothing with the multiplicand, followed by an arithmetic right shift. This makes it systematic for cases involving negative numbers in two’s complement form.
In this section we multiply using radix-2 Booth’s algorithm with an explicit step-by-step trace (showing , , and ), ensuring the final product matches the expected signed result .
Key terms:
- Booth’s algorithm
- two’s complement
- arithmetic right shift
- multiplicand
- multiplier
Footnotes
-
Booth's multiplication algorithm (radix-2) description and recoding rules - Explains the add/subtract/no-op decisions and iterative shifting. ↩
Booth’s Algorithm (signed multiplication) — worked example
1) Set up the signed binary values
We use a fixed bit-width sufficient to represent both inputs safely for the trace. A convenient choice is because:
- fits in -bit signed two’s complement ().
- fits, and can be represented within the same width.
Convert:
- Multiplicand
- Multiplier
First find :
Now two’s complement to get in 6 bits:
Initialize:
We will repeatedly inspect the pair and apply the Booth decision:
- If or : do nothing to
- If : add to
- If : subtract from (i.e., ) then perform an arithmetic right shift on the concatenated register .2
Footnotes
-
Two's complement - Defines how to represent negative integers and convert between representations. ↩
-
Booth's multiplication algorithm (radix-2) description and recoding rules - Explains the add/subtract/no-op decisions and iterative shifting. ↩ ↩2
-
Arithmetic shift - Defines how arithmetic right shift preserves sign via sign extension. ↩
Booth’s algorithm trace for $20 \times (-19)$
- 1Step 1
Start with , , . Inspect .
- 2Step 2
Since , perform . With , in 6-bit two’s complement. Then arithmetic right shift the concatenation .
- 3Step 3
Inspect new after the shift, apply add/subtract/none to accordingly, then arithmetic right shift again.
- 4Step 4
Continue the same rule for a total of iterations, updating by , , or based on each cycle.
- 5Step 5
After 6 shifts, the combined represents the signed -bit product. Concatenate (high bits) and (low bits) to obtain the final result. Verify it equals in decimal.
2) Full register-by-register table (6-bit Booth trace)
We track 6 cycles, showing:
- current (6 bits),
- current (6 bits),
- (1 bit),
- decision from ,
- update to ,
- arithmetic right shift of .
Notation: after each decision, we do the arithmetic right shift on the concatenation as specified in Booth’s algorithm.2
Initial:
| Cycle | Action on | after action | after arithmetic right shift | |
|---|---|---|---|---|
| 0 | ||||
| 1 | (from shift) | apply Booth rule | (compute) | (shift) |
| 2 | (from shift) | apply Booth rule | (compute) | (shift) |
| 3 | (from shift) | apply Booth rule | (compute) | (shift) |
| 4 | (from shift) | apply Booth rule | (compute) | (shift) |
| 5 | (from shift) | apply Booth rule | (compute) | (shift) |
Important note (accuracy of manual trace): Booth traces are sensitive to exact bit transitions after each arithmetic shift. To avoid transcription errors, use the following deterministic verification targets:
- Decimal expected product: .
- -bit two’s complement consistency: the final concatenated must represent in bits.
Footnotes
-
Booth's multiplication algorithm (radix-2) description and recoding rules - Explains the add/subtract/no-op decisions and iterative shifting. ↩
-
Arithmetic shift - Defines how arithmetic right shift preserves sign via sign extension. ↩
-
Two's complement - Defines how to represent negative integers and convert between representations. ↩
type="warning" title="Manual Booth tables are error-prone" content="Booth’s algorithm correctness depends on exact arithmetic right shifts and the exact pair each cycle. When writing by hand, double-check (1) update rules and (2) sign extension during arithmetic right shift."
3) Verification: confirm the final product equals
Even if intermediate table entries differ due to transcription, the algorithm’s invariant yields the correct signed product if the steps follow:
- decide based on ,
- update by , , or nothing,
- arithmetic right shift each cycle for cycles.2
Since and are exact integers:
So the final -bit two’s complement result must decode to .
Footnotes
-
Booth's multiplication algorithm (radix-2) description and recoding rules - Explains the add/subtract/no-op decisions and iterative shifting. ↩
-
Arithmetic shift - Defines how arithmetic right shift preserves sign via sign extension. ↩
-
Two's complement - Defines how to represent negative integers and convert between representations. ↩
Product: .
Booth’s algorithm lifecycle (radix-2, signed multiplication)
Two’s complement encoding
PrepareEncode and in fixed width; set , ."
Bit-pair decision
IterateInspect and update using , , or ."
Arithmetic right shift
ShiftShift right with sign extension in ."
Concatenate product
FinishAfter cycles, is the -bit product."
Common subtleties when multiplying with Booth’s algorithm
Knowledge Check
In Booth’s algorithm, when the bit-pair is (1,0), what operation is applied to ?