You are on page 1of 11

ndice

Algoritmos de Booth para la multiplicacin y divisin en binario Temas Pgina - Definicin y caractersticas de un algoritmo..2 - Multiplicacin: Algoritmo de Booth..3 - Divisin en Binario.4 - Conclusin..10 - Bibliografa..11

Algoritmos de Booth para la multiplicacin y divisin en Binario


Definicin: Algoritmo Podemos encontrar muchas definiciones completas o formales de algoritmo en los textos de algortmica y programacin, todas ellas muy similares: Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo ms finito. Descripcin de un esquema de comportamiento expresado mediante un reportorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomina lxico. Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solucin o indicar la falta de esta a un problema en un tiempo determinado.

Caractersticas: Las caractersticas fundamentales que debe cumplir todo algoritmo son: Ser definido: Sin ambigedad, cada paso del algoritmo debe indicar la accin a realizar sin criterios de interpretacin. Ser finito: Un nmero especfico y numerable de pasos debe componer al algoritmo, el cual deber finalizar al completarlos. Tener cero o ms entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende. Tener una o ms salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como nicamente verlos en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programacin que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo. Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada ms ni nada menos que aquello que se requiera para y en su ejecucin.

El algoritmo de Booth es un algoritmo que sirve para multiplicar (y dividir) nmeros binarios con signo de manera rpida y sencilla en complemento a dos. El algoritmo fue inventado por Andrew Donald Booth en 1950 mientras que haca investigacin sobre cristalografa en la universidad de Bloomsbury, en Birkbeck, Londres. Booth usaba calculadoras de escritorio que eran ms rpidas en el desplazamiento que sumando, y cre el algoritmo para aumentar su velocidad. El algoritmo de Booth es de inters en el estudio de la arquitectura de computadoras.

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:

Sabiendo que la posicin de cada bit es 2^n (elevado a n) y partimos de n=0 de derecha a izquierda, slo queda realizar la suma total de multiplicar por dicho bit. Tambin debemos saber que el complemento a uno de un nmero binario es cambiar sus ceros por unos, y sus unos por ceros (complementar): (010010 > ca1: 101101) y que 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):

Multiplicacin: Algoritmo de Booth Realizar una suma con dos nmeros binarios es tarea fcil, pero la multiplicacin resulta algo ms complicada. 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.
3

Partiendo del nmero P (producto) comenzamos a comparar los ltimos 2 bits de la derecha, siguiendo los casos base del recuadro:

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. Divisin en Binario La operacin de divisin es algo ms compleja que la multiplicacin, pero tambin se realiza en la mayora de computadores mediante un circuito sumador/restador y algn algoritmo adecuado. Dado dos operandos, el dividendo D y el divisor d, el objetivo de la divisin es calcular el cociente Q y el resto R tal que: D = d *Q + R con la condicin de que el resto sea menor que el divisor, es decir 0 R d. Los circuitos que realizan la multiplicacin y la divisin son anlogos, pues el producto se puede realizar por sumas sucesivas y el cociente se puede realizar mediante restas sucesivas. Vamos a ver primero el mtodo de lpiz y papel para los nmeros binarios positivos. Para ello seguiremos el siguiente algoritmo: 1. Examinar los bits del dividendo de izquierda a derecha hasta encontrar una cadena mayor que el divisor. 2. Se coloca un 1 en el cociente y se procede a restar el divisor al dividendo.
4

3. Ahora empieza unas acciones cclicas: al resto se le aade una cifra del dividendo, si no es mayor que el divisor se aade un 0 al cociente y se baja otra cifra; as hasta que el nuevo resto sea mayor que el divisor y entonces se aade un 1 al cociente y se procede a restar el divisor del resto actual. 4. Este proceso se repite hasta que se acaban todos los bits del dividendo.

El algoritmo de la divisin se basa en prueba y error. Al igual que con los nmeros en decimal, la divisin binaria busca el nmero que multiplicado por el divisor nos da el mayor nmero que se puede restar al dividendo sin que nos d un valor negativo. En la divisin binaria los valores a probar son siempre o el uno o el cero, primero probamos con el uno esto nos har restar al dividendo el divisor, eligiendo los bits adecuados, si la resta es negativa en vez de un uno cambiamos por un cero y bajamos una nueva cifra, si el resultado fue positivo dejamos el valor de la resta al cual se le aade una nueva cifra del dividendo y seguimos con la operacin. Pero a la hora de realizar un circuito digital que realice la divisin es mejor cambiar un poco el mtodo y en vez de desplazar el divisor a la derecha, desplazaremos el resto parcial a la izquierda (en la prctica es como multiplicarlo por 2) y operamos con el divisor fijo. Veamos como realizaramos la anterior divisin con esta variante al mtodo propuesto.

El problema es que el ltimo resto parcial Rn no contiene exactamente el resto, pues el valor verdadero se calcula como: R = Rn * 2-n Est claro que es ms difcil de automatizar la divisin debido al proceso de ensayo. Las tareas a realizar por el circuito son: acomodar metdicamente el divisor con relacin al dividendo y realizar una sustraccin, en complemento a dos. Si el resultado es cero o positivo, se pone el bit cociente como 1, el resultado de la resta se ampla con otro dgito del dividendo y el divisor se acomoda para otra sustraccin. Esta tcnica se realiza utilizando una estructura de registro similar a la que se utiliz para realizar la multiplicacin. Divisin por el mtodo de restauracin: Tal como se ha indicado, para evitar la utilizacin de circuitos comparadores de elevado coste, la comparacin se realiza entre el dividendo y el divisor se realiza mediante una resta. Al realizar la resta, una respuesta positiva indica que el divisor es ms pequeo, y se coloca un 1 en el cociente. Una respuesta negativa indica que el divisor es mayor y por tanto que la resta no era necesaria, por lo que hay que volver a sumar el divisor al dividendo. A esta operacin se le llama restaurar el valor original del dividendo, dndole nombre al mtodo.

Todo este proceso se puede realizar sobre la estructura de registros vistos anteriormente y utilizando el algoritmo descrito a continuacin:

Ejemplo: Realizar segn el mtodo de la divisin con restauracin el siguiente cociente: D/d D= 8 (1000) d= 3 (0011) con (-3) = (1101) Ac 0000 0010 Resto D 1000 0010 Cociente d 0011 0011

Inicialmente: Finalmente:

Divisin sin restauracin: Es posible acelerar este algoritmo mediante la eliminacin de la restauracin que implica una suma para volver a recobrar un dato. Para ello debemos darnos cuenta de que si la restauracin la escribimos como: (Rj)A <-- (Rj)A + d (1) esta va seguida siempre de un desplazamiento (*2) y una resta (Rj+1)A <-- (2*Rj)A - d (2) donde 2* corresponde a un desplazamiento a izquierda de los registros A y Q. Estas dos ecuaciones pueden combinarse en una sola para la obtencin de los sucesivos restos parciales sobre el registro R: (Rj+1)A <-- (2*Rj)A - d = 2 * ((Rj)A + d ) d (3) En esta idea se basa el mtodo de la no restauracin, en que si el bit: Qn-i = 1 el resto parcial se evala segn la ecuacin (2) y Qn-i = 0 el resto parcial se evala segn la ecuacin (3). En la figura siguiente se muestra el algoritmo de mtodo de no restauracin:

Ejemplo: Realizar segn el mtodo de la divisin sin-restauracin el siguiente cociente: D/d. D = 8 (1000) d = 3 (0011) con (-3) = (1101) Ac 0000 0010 Resto D d 1000 0011 0010 0011 Cociente
8

Inicialmente: Finalmente:

Por otra parte hay que destacar que no existen algoritmos simples que efecten la divisin de nmeros con signo y que se puedan comparar con la multiplicacin. Se necesitar un procesado previo de los operandos y un procesamiento posterior de los resultados. Aunque siempre se podrn transformar los operandos en valores positivos, utilizar uno de los algoritmos antes analizados y transformar los resultados en los valores correctos con el signo que se necesite.

Conclusin:

Los algoritmos son una serie de pasos ordenados y finitos que se utilizan para encontrar la solucin de un problema. El algoritmo es de carcter general y puede aplicarse a cualquier operacin matemtica o a cualquier problema. En este reporte se habla sobre lo que seran Los algoritmos de Booth: El algoritmo de Booth es un algoritmo que nos ayuda a multiplicar de una manera ms fcil y rpida, que cuando lo hacemos de manera tradicional. Respecto al proceso de multiplicacin: 1. Problemtica de la multiplicacin de nmeros con signo. 2. El algoritmo de Booth permite multiplicar nmeros en Ca2 y en Algunos casos reduce el nmeros de operaciones si aparecen cadenas de 1s o 0s en el multiplicador. Respecto al proceso de la divisin: 1. Algoritmo para la divisin con restauracin para nmeros positivos. 2. Si se obtiene nmeros negativos, entonces se hace un tratamiento previo del signo, y en funcin de ste se obtiene el signo del resultado.

10

Bibliografa: http://www.emezeta.com/articulos/multiplicacion-algoritmo-de-booth#axzz2Kq6a6Sd1 https://sites.google.com/site/matematicasdiscretasevz/1-4-algoritmos-de-booth-para-lamultiplicacion-y-division-en-binario http://www.uv.es/varnau/AEC_514.pdf Johnsonbaugh, Richard Matemticas Discretas, 4a. edicin, Mxico, Editorial PRENTICE-HALL, 1999.

11

You might also like