lunes, 1 de diciembre de 2014

1.4.- Algoritmos de Booth para la multiplicación y división en binario.



El algoritmo de Booth es un método rápido y sencillo para obtener el producto de dos números binarios con signo en notación complemento a dos.

Complemento a 1

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 a 2

El complemento a dos de un número binario es el resultado de sumar 1 al complemento a uno de dicho número binario (NOTA: En el Ca1 sólo se complementa si el número es negativo):  mi numero en decimal es 86

Realizar una multiplicación con el algoritmo de Booth, resulta mucho más sencillo de implementar. Partimos del ejemplo de la multiplicación 6·2=12:

Obtengo mis números (multiplicando y multiplicador) en binario con longitud de 8 bits

  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 continuación:

Como se puede ver en la imagen superior, partiendo de los números binarios de la multiplicación 6·2 (multiplicando y multiplicador) creamos tres nuevos números binarios del doble de tamaño (16 en el ejemplo): A, S y P.


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

0  0  No hacer nada

0  1 P = P + A

1  0  P = P + S

1  1  No hacer nada

Se realizará esta comparación 8 veces en este ejemplo (número de bits de los operandos) y al final de cada comparación, 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 quedarían los siguientes resultados:

Finalmente obtenemos el número en binario resultante (12 en este ejemplo), descartando el bit extra que hemos añadido al principio del procedimiento y que se encuentra en el extremo a la derecha.

0 comentarios :

Publicar un comentario