You are on page 1of 3

1.4 Algoritmos de Booth para la multiplicacin y divisin en binario.

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 -> ca :101101) Complemento a2 El complemento a dos de un nmero binario es el resultado de sumar al complemento a uno de dic!o nmero binario (NOTA: En el Ca1 slo se complementa si el nmero es negativo): mi numero en decimal es "# $eali%ar una multiplicacin con el algoritmo de &oot!, resulta muc!o ms sencillo de implementar. Partimos del e'emplo de la multiplicacin #()* ): 1 +btengo mis nmeros (multiplicando y multiplicador) en binario con longitud de " bits 2 asigno ,* multiplicando, -* .omplemento a) de ,, P* " bits en /. ,grego 0 bits e1tras a la derec!a de , y -, en P agrego el 2alor de multiplicador con longitud de " bits y un bit e1tra con 2alor /. .omo se indica a continuacin: .omo se puede 2er en la imagen superior, partiendo de los nmeros binarios de la multiplicacin #() (multiplicando y multiplicador) creamos tres nue2os nmeros binarios del doble de tama3o ( # en el e'emplo): ,, - y P.

o Partiendo del nmero P (producto) comen%amos a comparar los ltimos ) bits de la derec!a, siguiendo los casos base del recuadro: / / 4o !acer nada / P*P5, / P*P54o !acer nada -e reali%ar esta comparacin " 2eces en este e'emplo (nmero de bits de los operandos) y al 6inal de cada comparacin, reali%amos un despla%amiento de un bit !acia la derec!a, manteniendo el ltimo bit

de la i%7uierda, y descartando el ltimo bit del lado contrario. -i !acemos una tra%a paso a paso nos 7uedar8an los siguientes resultados: 9inalmente obtenemos el nmero en binario resultante (12 en este ejemplo), descartando el bit e1tra 7ue !emos a3adido al principio del procedimiento y 7ue se encuentra en el e1tremo a la derec!a.

El 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. Debemos saber que un nmero binario est formado por bits de ceros y unos, y que se puede traducir a decimal fcilmente de la siguiente forma:

abiendo que la posicin de cada bit es !"n #ele$ado a n% y partimos de n&' de derecha a i(quierda, slo queda reali(ar la suma total de multiplicar por dicho bit, en este caso: #')!"*+,)!"-+')!".+,)!"/+')!"0+,)!"!+,)!",+')!"' & 1-%. 2ambin debemos saber que el complemento a uno de un nmero binario es cambiar sus ceros por unos, y sus unos por ceros #complementar%: #','',' 34 ca,:,',,',% y que el complemento a dos de un nmero binario es el resultado de sumar , al complemento a uno de dicho nmero binario:

5eali(ar una suma con dos nmeros binarios es tarea fcil, pero la multiplicacin resulta algo ms complicada. 6on el algoritmo de Booth, resulta mucho ms sencillo de implementar. 7artimos del e8emplo de la multiplicacin -)!&,!:

6omo se puede $er en la imagen superior, partiendo de los nmeros binarios de la multiplicacin -)! #multiplicando y multiplicador% creamos tres nue$os nmeros binarios del doble de tama9o #,- en el e8emplo%: :, y 7.

7artiendo del nmero 7 #producto% comen(amos a comparar los ltimos ! bits de la derecha, siguiendo los casos base del recuadro:

e reali(ar esta comparacin 1 $eces en este e8emplo #nmero de bits de los operandos% y al final de cada comparacin, reali(amos un despla(amiento de un bit hacia la derecha, manteniendo el ltimo bit de la i(quierda, y descartando el ltimo bit del lado contrario. i hacemos una tra(a paso a paso nos quedar;an los siguientes resultados:

<inalmente obtenemos el nmero en binario resultante #,! en este e8emplo%, descartando el bit e=tra que hemos a9adido al principio del procedimiento y que se encuentra en el e=tremo a la derecha.

You might also like