1.4 Algoritmos de Booth para la Multiplicación y División en Binario
El algoritmo de Booth es un método rápido y sencillo para obtener el producto de dos números binarios con signo en notación complemento a dos. La manera en que se representan los números binarios negativos es mediante su complemento a dos. El complemento a uno consiste en invertir el valor de cada bit, esto es que si se tiene el número 5 binario b'00000101' su complemento a uno sería b'11111010'. Una vez teniendo el complemento a 1 para obtener el complemento a dos simplemente se le debe sumar un 1, así que se tiene b'11111010 + 1' de modo que el complemento a dos del número 5 binario es b'11111011'.
Ese es un dato muy importante ya que de ese modo se representan los números binarios negativos y el complemento a dos es parte del algoritmo de multiplicación de Booth. También es importante explicar que utilizando números de 8 bits el número mayor que se puede representar en complemento a dos es 127 y -127 que en binario son b'01111111' y b'1000001' respectivamente.
Complemento a1
Para obtener el complemento a uno del numero en binario solo consta en cambiar sus ceros por unos, y sus unos por ceros (complementar): (010010 -> ca1:101101).
Complemento a 2
El complemento a dos de un número binario es el resultado de sumar 1 al complemento a uno de dicho número binario
Multiplicación
Como se puede ver en la imagen superior, partiendo de los números binarios de la multiplicación 6·2 (multiplicando y multiplicador) creamos tres nuevos números binarios del doble de tamaño (16 en el ejemplo): A, S y P. Partiendo del número P (producto) comenzamos a comparar los últimos 2 bits de la derecha, siguiendo los casos base del recuadro:
Se realizará esta comparación 8 veces en este ejemplo (número de bits de los operandos) y al final de cada comparación, realizamos un desplazamiento de un bit hacia la derecha, manteniendo el último bit de la izquierda, y descartando el último bit del lado contrario. Si hacemos una traza paso a paso nos quedarían los siguientes resultados:
Finalmente obtenemos el número en binario resultante (12 en este ejemplo), descartando
el bit extra que hemos añadido al principio del procedimiento y que se encuentra en el extremo a la derecha.
Divición
Igual que en el producto, la división es muy fácil de realizar, porque no son posibles en el cociente otras cifras que UNOS y CEROS (binarios).
Consideremos el siguiente ejemplo, 42 : 6 =7 en binario.
Se intenta dividir el dividendo por el divisor, empezando por tomar en ambos el mismo número de cifras (100 entre 110, en el ejemplo). Si no puede dividirse, se intenta la división tomando un dígito más (1001 entre 100). Si la división es posible, entonces, el divisor sólo podrá estar contenido una vez en el dividendo, es decir, la primera cifra del cociente es un UNO. En ese caso, el resultado de multiplicar el divisor por 1 es el propio divisor. Restamos las cifras del dividendo del divisor y bajamos la cifra siguiente.
El procedimiento de división continúa del mismo modo que en el sistema decimal.