Es el Algoritmo Booth para la multiplicación solo 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, cuando multiplico 2 números positivos utilizando el algoritmo de cabina, obtengo un resultado incorrecto.
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
-
Después del desplazamiento a la derecha de P por 1 bit 0 000 100
-
Después del desplazamiento a la derecha de P por 1 bit 0 000 010
-
P + S = 011 001 0
Después del desplazamiento a la derecha por 1 bit 0 011 001
-
Descartando el LSB 001100
Pero eso resulta ser el binario de 12. Debería haber sido 20 (010100)