- Para la multiplicación de números binarios utilizaremos las mismas reglas que para la multiplicación de números decimales. La tabla de multiplicar es mucho mas sencilla ya que solo tiene dos entradas 0 y 1.Si procedemos igual que en decimal una multiplicación resultaría:
010011 101101 ------ 010011 000000 010011 010011 000000 010011 ----------- 01101010111De esta forma deben sumarse muchos bits simultaneamente por columna. En nuestro caso hay una columna de seis bits, dos de cinco, cuatro, tres, dos y uno; sin contar los bits de transporte ( carry ) de las columnas anteriores.
En general los sumadores que dispondremos en las computadoras son capaces de sumar dos números por lo tanto debemos adoptar el algoritmo e ir acumulando el resultado parcial y sucesivamente sumar el multiplicando corrido si el bit del multiplicador asi lo indica.
010011 101101 ------ 000000 010011 ------ 010011 000000 ------- 0010011 010011 -------- 01011111 010011 --------- 011110111 000000 ---------- 0011110111 010011 ----------- 01101010111Una primera conclusión es que aunque se multiplican dos números de 6 bits y el resultado es de 12 bits ( en general los dos números de n bits y el resultado de 2n bits ) no hace falta un sumador de 12 bits si se cuenta con un sumador de 6 bits que se corre un lugar para la izquierda.
El mismo efecto se consigue si se mantiene fijo el sumador y el multiplicando y se corre el resultado acumulado a la derecha un bit cada vez.
La configuración mas sencilla consiste en un acumulador de 2n bits, separado en dos registros de n bits. El de la izquierda contiene cero en todos sus bits al comenzar y en el se almacenan las sumas parciales; el de la derecha al comenzar contiene el multiplicador y la unidad puede detectar si el último bit vale 0 o 1.
Luego de cada suma se corre el acumulador un lugar a la derecha, ingresando el bit de carry. De esta forma los sucesivos bits del multiplicador estan ubicados en el último bit del registro y eso le permite a la unidad decidir si sumar el multiplicando o cero. De esta forma la unidad pierde el valor del multiplicador y al final el resultado esta en los 2n bits del acumulador.
No hay comentarios:
Publicar un comentario