ブースの乗算アルゴリズム
3 × -4 を実行する。m = 3、r = −4、x = 4、y = 4 である。
m = 0011, -m = 1101, r = 1100
A = 0011 0000 0
S = 1101 0000 0
P = 0000 1100 0
ループを 4回実行する。 P = 0000 1100 0. 最後の 2ビットは 00. P = 0000 0110 0. 右シフト. P = 0000 0110 0. 最後の 2ビットは 00. P = 0000 0011 0. 右シフト. P = 0000 0011 0. 最後の 2ビットは 10. P = 1101 0011 0. P = P + S. P = 1110 1001 1. 右シフト. P = 1110 1001 1. 最後の 2ビットは 11. P = 1111 0100 1. 右シフト.
積は 1111 0100 となり、 -12 である。
2の補数表現では、表現可能な最小の負数の2の補数を計算すると本来のビット数では表現できない。例えば、被乗数が4ビットなら -8 (1000) という値の2の補数は 8 (01000) となる。
M × ′ ′ 0 0 1 1 1 0 1 0 ′ ′ = M × ( 2 5 + 2 4 + 2 3 + 2 1 ) = M × 58 {\displaystyle M\times \,^{\prime \prime }0\;0\;1\;1\;1\;0\;1\;0\,^{\prime \prime }=M\times (2^{5}+2^{4}+2^{3}+2^{1})=M\times 58}
M × ′ ′ 0 1 0 0 -1 1 -1 0 ′ ′ = M × ( 2 6 − 2 3 + 2 2 − 2 1 ) = M × 58 {\displaystyle M\times \,^{\prime \prime }0\;1\;0\;0{\mbox{-1}}\;1{\mbox{-1}}\;0\,^{\prime \prime }=M\times (2^{6}-2^{3}+2^{2}-2^{1})=M\times 58}
ブースのアルゴリズムはこの手法に従って、1のかたまりの最初に当たったら(0 1)加算を実行し、1のかたまりの最後に当たったら(1 0)減算を実行するものである。この手法は負数の乗算でもうまく機能する。乗数の中の 1 が連続していれば、ブースのアルゴリズムでは一般的な乗算アルゴリズムよりも加算や減算が少なくて済む。逆に 1 が2つ以上連続していない場合、一般的なアルゴリズムよりも加算や減算の回数が多くなってしまう。