ブースの乗算アルゴリズム
つまり A と S で必要とするビット数が異なることになり、上述の実装ではうまく計算できない。1つの解決策として、A、S、P のビット数を1ビット増やせばよい。以下は被乗数も乗数も4ビットのとき −8 × 2 を計算する例である。
A = 1 1000 0000 0
S = 0 1000 0000 0
P = 0 0000 0010 0
ループを 4回実行する。 P = 0 0000 0010 0. 最後の 2ビットは 00. P = 0 0000 0001 0. 右シフト. P = 0 0000 0001 0. 最後の 2ビットは 10. P = 0 1000 0001 0. P = P + S. P = 0 0100 0000 1. 右シフト. P = 0 0100 0000 1. 最後の 2ビットは 01. P = 1 1100 0000 1. P = P + A. P = 1 1110 0000 0. 右シフト. P = 1 1110 0000 0. 最後の 2ビットは 00. P = 1 1111 0000 0. 右シフト.
積は 11110000 となり(最上位ビットと最下位ビットを除いた値)、−16 である。