Está en la página 1de 4

ALGORITMO DE BOOTH

El algoritmo de Booth es un mtodo rpido y sencillo para obtener el producto de dos


nmeros binarios con signo en notacin complemento a dos.

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 a2
El complemento a dos de un nmero binario es el resultado de sumar 1 al complemento a
uno de dicho nmero binario (NOTA: En el Ca1 slo se complementa si el nmero es

negativo): mi numero en decimal es 86


Realizar una multiplicacin con el algoritmo de Booth, resulta mucho ms sencillo de
implementar. Partimos del ejemplo de la multiplicacin 62=12:
1 Obtengo mis nmeros (multiplicando y multiplicador) en binario con longitud de 8 bits
2 asigno A= multiplicando, S= Complemento a2 de A, P= 8 bits en 0. Agrego 7 bits
extras a la derecha de A y S, en P agrego el valor de multiplicador con longitud de 8 bits y
un bit extra con valor 0. Como se indica a continuacin:
Como se puede ver en la imagen superior, partiendo de los nmeros binarios de la
multiplicacin 62 (multiplicando y multiplicador) creamos tres nuevos nmeros binarios
del doble de tamao (16 en el ejemplo): A, S y P.

3o Partiendo del nmero P (producto) comenzamos a comparar los ltimos 2 bits de la


derecha, siguiendo los casos base del recuadro:
0 0 No hacer nada
0 1P=P+A
1 0 P=P+S
1 1 No hacer nada

Se realizar esta comparacin 8 veces en este ejemplo (nmero de bits de los operandos)
y al final de cada comparacin, 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 quedaran los siguientes resultados:
Finalmente obtenemos el nmero en binario resultante ( 12 en este ejemplo), descartando
el bit extra que hemos aadido al principio del procedimiento y que se encuentra en el
extremo a la derecha.

Dividir 100010010 (274) entre 1101 (13):


......100010010 | 1101
..........................
..........................010101
........................-.....0000
.........................
............................10001
......................... -...1101
...........................
............................01000
...........................-..0000
...........................
............................10000
...........................-..1101
.........................
.............................00011
............................-..0000
.........................
.............................01110
...........................-...1101
.........................
..............................00001