Está en la página 1de 3

MULTIPLICACION BINARIA

La multiplicación es un método por el cual un número se suma tantas veces a sí mismo, como lo
especifica el multiplicador. En el sistema decimal el procedimiento que se efectúa es, multiplicar el
multiplicando por cada uno de los dígitos del multiplicador. Luego, realizar la suma de los
productos parciales, en columnando a los mismos de forma adecuada (corriendo a cada uno, una
posición hacia la izquierda) para obtener el producto final. En binario es válida la misma regla.

En una primera realización podemos realizar la multiplicación binaria de operandos positivos en un


array lógico puramente combinacional. Sean M y m los números a multiplicar, cada bit del producto
parcial Pij=mi*Mj se genera en una puerta AND

En realidad es mucho más simple que la multiplicación decimal. En el caso de la multiplicación


decimal, hemos de recordar 3 x 9 = 27, 7 x 8 56 =, y así sucesivamente. En la multiplicación
binaria, sólo tenemos que recordar lo siguiente,

0x0=0
0x1=0
1x0=0
1x1=1

Tenga en cuenta que desde binario opera en base 2, las reglas de multiplicación tenemos que
recordar son aquellos que involucran 0 y 1 solamente. Como un ejemplo de multiplicación binaria
tenemos 101 veces 11,

101
x11

En primer lugar se multiplica por 101 1, que produce 101. Luego ponemos un 0como marcador de
posición como lo haríamos en la multiplicación decimal y multiplicar 101 por 1, que produce 101.

101
x11
101
101 0 <- el 0 aquí es el marcador de posición

El siguiente paso, como con la multiplicación decimal, es añadir. Los resultados de nuestro paso
anterior indica que hay que añadir 101 y 1010, la suma de los cuales es 1111.

101
x11
101
1010
1111 Algoritmo de Booth

Hay algoritmos más directos para la obtención de multiplicaciones con números negativos, uno de
estos es el algoritmo de Booth. El cual genera multiplicaciones de 2n bits y trata por igual tanto
números positivos como negativos. Este algoritmo se basa en el hecho de que cuando tenemos un
multiplicando el cual tiene una serie de unos en su representación, este valor se puede
descomponer en la resta de otros dos números con una cantidad de unos menores, por ejemplo:

0011110=0100000-0000010

Así la multiplicación se puede descomponer en una operación de adición para el primer número

y de una resta para el segundo:

M * (0 0 1 1 1 1 0) = M * (0 1 0 0 0 0 0) – M * (0 0 0 0 0 1 0)

El nuevo multiplicador lo podemos representar por:

m’ = 0 1 0 0 0 -1 0

Pero este método se puede generalizar para cualquier cadena de bits en el multiplicando. Para ello
realizamos un algoritmo de forma que cuando realicemos la multiplicación, nos fijaremos en el
multiplicador viendo los bits de dos en dos: mi y mi-1, de forma que cuando tengamos estas cuatro
posibles secuencias, determinarán el valor de m’i y realizaremos las acciones indicadas:

00 ó 11 : m’i = 0 : Solo desplazaremos el multiplicador --> poner ceros.

01 : m’i = 1 : Realizaremos el producto por 1 y desplazado.

10 : m’i = -1 : Realizaremos el complemento a dos del multiplicador con extensión de signo y


desplazado. Pero surge el problema del primer bit, para lo cual introducimos un bit previo a m0, el
m-1..Para entender por que se realiza esta asignación, hay que fijarse que todo número binario
puede ser expresado como resta de dos números y una forma de obtenerlos es aplicar la anterior
codificación.

Ejemplo:

m = 1 0 1 1 0 1 0 1(0) = mpos - mneg

m’ =-1 1 0-1 1-1 1-1

mpos = 0 1 0 0 1 0 1 0 (unos en los 1’s de m’)

mneg = 1 0 0 1 0 1 0 1 (unos en los -1’s de m’)

Para realizar la multiplicación podemos utilizar dos métodos, codificar el el multiplicador como
hemos visto antes (con signos negativos en los unos) o no codificarlo asi y tener en cuenta la
secuencia de bits de dos en dos como hemos visto.Para comprenderlo mejor veremos el mismo
ejemplo de las dos formas.
EJEMPLO DE LA SIMULACION

En siguiente ejemplo de la simulación se multiplico para -A 10101 * B 0111 donde el resultado


es 10100011 y el leed del signo encendido ya que se multiplico un número –A negativo +B
positivo.
Cabe destacar que en números decimales el 10101 representa el numero 5, el 111 es igual a 7 y
01000011 que es el resultado representa el numero -35

También podría gustarte