L'algoritmo del prodotto di Booth, o semplicemente algoritmo di Booth, è un algoritmo per il calcolo del prodotto tra due numeri binari con segno, espressi nella notazione complemento a due. Fu inventato dal fisicoAndrew Donald Booth nel 1951, originariamente allo scopo di velocizzare i calcoli necessari a una ricerca che Booth stava svolgendo nel settore della cristallografia, avendo a disposizione una calcolatrice lenta nelle somme ma veloce nello shift.
Siano m e r rispettivamente il moltiplicando e il moltiplicatore, e siano x e y le rispettive lunghezze in bit della codifica in complemento a due dei due numeri.
Determinare i valori di A, di S e il valore iniziale di P. Questi numeri devono essere codificati su x + y + 1 bit.
A viene generato scrivendo sui bit più significativi (a sinistra) il valore di m in complemento a due. I rimanenti y + 1 bit vanno riempiti con zeri.
S viene generato scrivendo sui bit più significativi il valore opposto di m in complemento a due. I rimanenti y +1 bit si riempiono con zeri.
P viene generato riempiendo i primi (a sinistra) x bit con degli zeri, successivamente va inserito il valore di r in complemento a due, eventuali bit ancora liberi vanno settati a zero.
Osservare i due bit meno significativi (più a destra) di P
Se sono "01", calcolare il valore di P + A, ignorando eventuali overflow.
Se sono "10", calcolare il valore di P + S, ignorando eventuali overflow.
Se sono "00" oppure "11", usare direttamente il valore di P.
Calcolare il nuovo valore di P eseguendo uno shift a destra del valore ottenuto nel punto precedente.
Ripetere i punti 2 e 3 per un numero di volte pari a y.
Eliminare il bit meno significativo (più a destra) da P, il valore ottenuto è il prodotto tra m e r.