Sie sind auf Seite 1von 3

MULTIPLICACION BINARIA La multiplicacin es un mtodo por el cual un nmero se suma tantas veces a s mismo, como lo especifica el multiplicador.

En el sistema decimal el procedimiento que se efecta es, multiplicar el multiplicando por cada uno de los dgitos del multiplicador. Luego, realizar la suma de los productos parciales, en columnando a los mismos de forma adecuada (corriendo a cada uno, una posicin hacia la izquierda) para obtener el producto final. En binario es vlida la misma regla.

En una primera realizacin podemos realizar la multiplicacin binaria de operandos positivos en un array lgico puramente combinacional. Sean M y m los nmeros a multiplicar, cada bit del producto parcial Pij=mi*Mj se genera en una puerta AND En realidad es mucho ms simple que la multiplicacin decimal. En el caso de la multiplicacin decimal, hemos de recordar 3 x 9 = 27, 7 x 8 56 =, y as sucesivamente. En la multiplicacin binaria, slo 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 multiplicacin tenemos que recordar son aquellos que involucran 0 y 1 solamente. Como un ejemplo de multiplicacin binaria tenemos 101 veces 11, 101 x11 En primer lugar se multiplica por 101 1, que produce 101. Luego ponemos un 0como marcador de posicin como lo haramos en la multiplicacin decimal y multiplicar 101 por 1, que produce 101. 101 x11 101 101 0 <- el 0 aqu es el marcador de posicin El siguiente paso, como con la multiplicacin decimal, es aadir. Los resultados de nuestro paso anterior indica que hay que aadir 101 y 1010, la suma de los cuales es 1111. 101 x11 101

1010 1111 Algoritmo de Booth Hay algoritmos ms directos para la obtencin de multiplicaciones con nmeros negativos, uno de estos es el algoritmo de Booth. El cual genera multiplicaciones de 2n bits y trata por igual tanto nmeros 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 representacin, este valor se puede descomponer en la resta de otros dos nmeros con una cantidad de unos menores, por ejemplo: 0011110=0100000-0000010 As la multiplicacin se puede descomponer en una operacin de adicin para el primer nmero 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 mtodo se puede generalizar para cualquier cadena de bits en el multiplicando. Para ello realizamos un algoritmo de forma que cuando realicemos la multiplicacin, 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, determinarn el valor de mi y realizaremos las acciones indicadas: 00 11 : mi = 0 : Solo desplazaremos el multiplicador --> poner ceros. 01 : mi = 1 : Realizaremos el producto por 1 y desplazado. 10 : mi = -1 : Realizaremos el complemento a dos del multiplicador con extensin 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 asignacin, hay que fijarse que todo nmero binario puede ser expresado como resta de dos nmeros y una forma de obtenerlos es aplicar la anterior codificacin. 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 1s de m) mneg = 1 0 0 1 0 1 0 1 (unos en los -1s de m) Para realizar la multiplicacin podemos utilizar dos mtodos, 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 simulacin se multiplico para -A 10101 * B 0111 donde el resultado es 10100011 y el leed del signo encendido ya que se multiplico un nmero A negativo +B positivo. Cabe destacar que en nmeros decimales el 10101 representa el numero 5, el 111 es igual a 7 y 01000011 que es el resultado representa el numero -35