Sei sulla pagina 1di 4

Algoritmo de Booth El algoritmo de Booth es un procedimiento algortmico para realizar la multiplicacin de dos nmeros con signo, expresados en base

binaria en notacin complemento a dos. Procedimiento 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 ltimos bits de P, para realizar la siguiente accin: 00 o 11: no se hace nada. 01: P = P + A. Se ignora el acarreo. 10: P = P + S. Se ignora el acarreo. 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. Ejemplo Sea la multiplicacin de 4103 como multiplicando y 254 como multiplicador. Se coloca el multiplicador debajo del multiplicando, haciendo coincidir las columnas de las unidades por la derecha.

Conforme a las tablas elementales, se multiplica la cifra de unidades (4)del multiplicador por cada una de las cifras del multiplicando, empezando por las unidades (3) acarreando, en su caso, las decenas (4 3 = 12, acarreo de 1 unidad) como suma al resultado de la multiplicacin de la cifra

siguiente [(4 0) + 1 = 1), 1 de acarreo], continundose de igual forma con las dems cifras del multiplicando (4103 4 = 16412). Consideramos esta lnea como lnea provisional.

Se procede de igual forma con la cifra de las decenas del multiplicador con cada una de las cifras del multiplicando, si bien el resultado se escribe debajo de la fila anterior corriendo un lugar a la izquierda la cifra de las unidades. (4103 5 = 20515)

Se contina as con todas las cifras del multiplicador. (4103 2 = 8206)

Finalmente se suman las cifras de cada una de las lneas provisionales, considerando los huecos de la derecha como ceros.

El resultado o Multiplicacin es el que resulta de dicha suma (4103 254 = 1042162) Ejemplo 2 En este ejemplo se utiliza la multiplicacin larga de multiplicar 23.958.233 (multiplicando) por 5.830 (multiplicador) y se llega al 139676498390 como resultado del producto.

Se realizan las operaciones:

Que dan como resultado:

Multiplicacin hind o de Fibonacci En primer lugar, se dibuja la tabla y se escriben los nmeros que se multiplicarn alrededor de las filas y las columnas. A continuacin, se rellenan las celdas con las decenas en los tringulos superiores y las unidades en los inferiores. Por ltimo, se suma siguiendo las lneas diagonales "llevndose" las decenas cuando es necesario, hasta obtener la solucin.La multiplicacin hind o de Fibonacci requiere la preparacin de una tabla (una rejilla dibujada en un papel) que sirve de gua para el clculo. Fue introducida en Europa en 1202 por Fibonacci en su Liber Abaci. Leonardo describi la operacin como "clculo mental", y utilizaba los dedos de las manos para realizar los clculos intermedios. Napier tambin public este mtodo en 1617, el ao en que muri. Como se muestra en el ejemplo, el multiplicando y el multiplicador se escriben encima y a la

derecha de la tabla. Durante la fase de multiplicacin, la tabla se rellena con los productos de los dgitos que sealan cada fila y columna, que arrojan nmeros de dos dgitos: las decenas se escriben en la esquina superior izquierda de cada celda, y las unidades en la inferior derecha. Durante la fase de adicin, se suma la tabla segn las diagonales. Por ltimo, si es necesario "llevarse" las decenas, se muestra la solucin de arriba abajo y de izquierda a derecha del borde de la tabla, llevndose las decenas en sentido inverso, como en la multiplicacin o en la suma habitual. Ejemplo Las imgenes de la derecha muestran cmo calcular 345 12 usando la multiplicacin hind. Como ejemplo ms complejo, ms abajo se muestra el clculo de 23.958.233 por 5.830; el resultado es 139.676.498.390. Obsrvese que el nmero 23.958.233 se encuentra en la parte superior de la tabla, y que 5.830 est verticalmente en su lado derecho. Los productos llenan la tabla y la suma de estos productos (diagonalmente) se encuentran en el lado izquierdo y el inferior. A continuacin estas sumas se agregan, como se muestra.

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 -> 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 01P=P+A 10P=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.

Potrebbero piacerti anche