Vous êtes sur la page 1sur 2

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.

Procedimiento multiplicacin Supongamos dos nmeros, multiplicando y multiplicador, con longitudes en bits, x para el primero, e y para el segundo:

Construimos una matriz de tres filas y x+y+1 columnas. Identificaremos las filas como, A la primera, S la segunda y P la tercera. Se inician los x primeros bits de cada fila con:

A, el multiplicando. S, el complemento a dos del multiplicando.


P, ceros.

Los siguientes y bits se completan con:


A, ceros. S, ceros. P, el multiplicador.

Para finalizar la matriz, se inician a 0 todos los valores de la ltima columna.

Una vez iniciada esta matriz, se realiza el algoritmo.

Se realizan y iteraciones del siguiente bucle. 1. Comparar los dos bits menos significativos de P, para realizar la siguiente accin:

00 o 11: no se hace nada. 01: P = P + A. Se ignora el desbordamiento (overflow). 10: P = P + S. Se ignora el desbordamiento.

2. Desplazamiento aritmtico de P a la derecha (se conserva el bit de signo).

Finalmente, tras y iteraciones, se elimina el ltimo bit de la derecha (menos significativo), obteniendo el resultado.