¿Es el Algoritmo de Booth para la multiplicación sólo para multiplicar dos números negativos como \$-3 * -4\$ o también puede multiplicar un número positivo y otro negativo como \$-3 * 4\$ ? Creo que no es para multiplicar dos números positivos, siempre que multiplico 2 números positivos utilizando el algoritmo de booth obtengo un resultado erróneo.
Por ejemplo: \$5 * 4\$
A = 101 000 0 // binary of 5 is 101
S = 011 000 0 // 2's complement of 5 is 011
P = 000 100 0 // binary of 4 is 100
x = 3
y = 3
m = 5
-m = 2's complement of m
r = 4
-
Tras el desplazamiento a la derecha de P en 1 bit 0 000 100
-
Tras el desplazamiento a la derecha de P en 1 bit 0 000 010
-
P+S = 011 001 0
Tras el desplazamiento a la derecha de 1 bit 0 011 001
-
Descartar el LSB 001100
Pero eso viene a ser el binario de 12 . Debería haber sido 20(010100)