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:
1º
Obtengo mis números
(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 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.
3° 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