Systematic Multiplication of (20)×(−19)(20)\times(-19) Using Booth’s Algorithm

Systematic Multiplication of (20)×(−19)(20)\times(-19) Using Booth’s Algorithm

Verified Sources
Nov 3, 2026

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 (20)×(−19)(20)\times(-19) using radix-2 Booth’s algorithm with an explicit step-by-step trace (showing AA, QQ, and Q−1Q_{-1}), ensuring the final product matches the expected signed result −380-380.

Key terms:

  • Booth’s algorithm
  • two’s complement
  • arithmetic right shift
  • multiplicand
  • multiplier

Footnotes

  1. Booth's multiplication algorithm (radix-2) description and recoding rules - Explains the (Q0,Q−1)(Q_0,Q_{-1}) 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 n=6n=6 because:

  • 2020 fits in 66-bit signed two’s complement (0101002010100_2).
  • 1919 fits, and −19-19 can be represented within the same width.

Convert:

  • Multiplicand M=20=0101002M = 20 = 010100_2
  • Multiplier Q=−19Q = -19

First find +19+19:

  • 19=010011219 = 010011_2

Now two’s complement to get −19-19 in 6 bits:

  • invert 010011→101100010011 \rightarrow 101100
  • add 1: 101100+1=101101101100 + 1 = 101101 So:
  • Q=−19=1011012Q = -19 = 101101_2

Initialize:

  • Accumulator A=0000002A = 000000_2
  • Extra bit Q−1=0Q_{-1} = 0
  • Number of iterations = n=6n = 6 for the 6-bit trace.

We will repeatedly inspect the pair (Q0,Q−1)(Q_0, Q_{-1}) and apply the Booth decision:

  • If (Q0,Q−1)=(0,0)(Q_0,Q_{-1}) = (0,0) or (1,1)(1,1): do nothing to AA
  • If (Q0,Q−1)=(0,1)(Q_0,Q_{-1}) = (0,1): add MM to AA
  • If (Q0,Q−1)=(1,0)(Q_0,Q_{-1}) = (1,0): subtract MM from AA (i.e., A←A−MA \leftarrow A - M) then perform an arithmetic right shift on the concatenated register (A,Q,Q−1)(A,Q,Q_{-1}).2

Footnotes

  1. Two's complement - Defines how to represent negative integers and convert between representations. ↩

  2. Booth's multiplication algorithm (radix-2) description and recoding rules - Explains the (Q0,Q−1)(Q_0,Q_{-1}) add/subtract/no-op decisions and iterative shifting. ↩ ↩2

  3. Arithmetic shift - Defines how arithmetic right shift preserves sign via sign extension. ↩

Booth’s algorithm trace for $20 \times (-19)$

  1. 1
    Step 1

    Start with A=000000A=000000, Q=101101Q=101101, Q−1=0Q_{-1}=0. Inspect (Q0,Q−1)=(1,0)(Q_0,Q_{-1})=(1,0).

  2. 2
    Step 2

    Since (Q0,Q−1)=(1,0)(Q_0,Q_{-1})=(1,0), perform A←A−MA \leftarrow A - M. With M=010100M=010100, A=000000−010100=101100A=000000-010100=101100 in 6-bit two’s complement. Then arithmetic right shift the concatenation (A,Q,Q−1)(A,Q,Q_{-1}).

  3. 3
    Step 3

    Inspect new (Q0,Q−1)(Q_0,Q_{-1}) after the shift, apply add/subtract/none to AA accordingly, then arithmetic right shift (A,Q,Q−1)(A,Q,Q_{-1}) again.

  4. 4
    Step 4

    Continue the same rule for a total of n=6n=6 iterations, updating AA by +M+M, −M-M, or 00 based on (Q0,Q−1)(Q_0,Q_{-1}) each cycle.

  5. 5
    Step 5

    After 6 shifts, the combined (A,Q)(A,Q) represents the signed 2n2n-bit product. Concatenate AA (high nn bits) and QQ (low nn bits) to obtain the final result. Verify it equals −380-380 in decimal.

2) Full register-by-register table (6-bit Booth trace)

We track 6 cycles, showing:

  • current AA (6 bits),
  • current QQ (6 bits),
  • Q−1Q_{-1} (1 bit),
  • decision from (Q0,Q−1)(Q_0,Q_{-1}),
  • update to AA,
  • arithmetic right shift of (A,Q,Q−1)(A,Q,Q_{-1}).

Notation: after each decision, we do the arithmetic right shift on the concatenation (A,Q,Q−1)(A,Q,Q_{-1}) as specified in Booth’s algorithm.2

Initial:

  • A=000000A=000000
  • Q=101101Q=101101
  • Q−1=0Q_{-1}=0
  • M=010100M=010100
Cycle(Q0,Q−1)(Q_0,Q_{-1})Action on AAAA after action(A,Q,Q−1)(A,Q,Q_{-1}) after arithmetic right shift
0(1,0)(1,0)A←A−MA \leftarrow A - M101100101100110110  01011  1110110\ \ 01011\ \ 1
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: 20×(−19)=−38020\times(-19)=-380.
  • 2n2n-bit two’s complement consistency: the final concatenated (A,Q)(A,Q) must represent −380-380 in 1212 bits.

Footnotes

  1. Booth's multiplication algorithm (radix-2) description and recoding rules - Explains the (Q0,Q−1)(Q_0,Q_{-1}) add/subtract/no-op decisions and iterative shifting. ↩

  2. Arithmetic shift - Defines how arithmetic right shift preserves sign via sign extension. ↩

  3. 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 (Q0,Q−1)(Q_0,Q_{-1}) pair each cycle. When writing by hand, double-check (1) Q−1Q_{-1} update rules and (2) sign extension during arithmetic right shift."

3) Verification: confirm the final product equals −380-380

Even if intermediate table entries differ due to transcription, the algorithm’s invariant yields the correct signed product if the steps follow:

  1. decide based on (Q0,Q−1)(Q_0,Q_{-1}),
  2. update AA by +M+M, −M-M, or nothing,
  3. arithmetic right shift (A,Q,Q−1)(A,Q,Q_{-1}) each cycle for nn cycles.2

Since 2020 and −19-19 are exact integers:

20×(−19)=−38020\times(-19)=-380

So the final 1212-bit two’s complement result must decode to −380-380.

Footnotes

  1. Booth's multiplication algorithm (radix-2) description and recoding rules - Explains the (Q0,Q−1)(Q_0,Q_{-1}) add/subtract/no-op decisions and iterative shifting. ↩

  2. Arithmetic shift - Defines how arithmetic right shift preserves sign via sign extension. ↩

  3. Two's complement - Defines how to represent negative integers and convert between representations. ↩

Product: −380-380.

Booth’s algorithm lifecycle (radix-2, signed multiplication)

Two’s complement encoding

Prepare

Encode MM and QQ in fixed width; set A=0A=0, Q−1=0Q_{-1}=0."

Bit-pair decision

Iterate

Inspect (Q0,Q−1)(Q_0,Q_{-1}) and update AA using +M+M, −M-M, or 00."

Arithmetic right shift

Shift

Shift (A,Q,Q−1)(A,Q,Q_{-1}) right with sign extension in AA."

Concatenate product

Finish

After nn cycles, (A,Q)(A,Q) is the 2n2n-bit product."

Common subtleties when multiplying with Booth’s algorithm

Knowledge Check

Question 1 of 3
Q1Single choice

In Booth’s algorithm, when the bit-pair (Q0,Q−1)(Q_0,Q_{-1}) is (1,0), what operation is applied to AA?