Algoritmos de multiplicación y división.

Páginas: 6 (1333 palabras) Publicado: 8 de diciembre de 2010
Algoritmos de multiplicación y división.
A continuación se estudiarán algoritmos para efectuar las operaciones de multiplicación y
división entera. Usualmente estas operaciones están soportadas por hardware dedicado,
adicional a la unidad aritmética que efectúa las operaciones básicas de sumar y restar números
con y sin signo. Al estudiar los algoritmos podrá advertirse la naturalezasecuencial de éstos, en
contraposición al carácter combinacional de las operaciones de suma y resta.
11.1. Multiplicación como suma repetitiva.
La operación de multiplicación se puede estudiar como la suma repetitiva del multiplicando las
veces que indique el multiplicador.
Por ejemplo la operación 7*3, en sistema binario puede realizarse según:
0111*0011 = 0111+0111+0111 = 010101
Si los factoresson de N cifras, el producto puede expresarse con 2N dígitos.
Con N=3 en sistema decimal se tiene que con operandos sin signo, el mayor factor es 999, y se
tiene que 999*999= 998.001 requiere 6 cifras.
Si se considera factores positivos, pero con signo, el mayor positivo es 499 y en este caso
también se requieren 6 dígitos para el producto: 499*499 = 249.001
Se considera: Producto =Multiplicando * Multiplicador.
Sean P el producto, R el multiplicando y Q el multiplicador. Se define el multiplicador como el
factor que indica las veces que el multiplicando se ha de tomar como sumando. Y como
multiplicando al factor que ha de ser multiplicado.
Empleando el lenguaje C, puede describirse la idea anterior según:
/*Algoritmo a. P y R de largo 2N. Q largo N. Sumador ancho 2N. */
/* Q yR positivos P = R * Q */
for( j = Q; j>0 ; j--)
{
P+=R;
}
2 Estructuras de Computadores Digitales

Nótese que P y R deben ser de largo 2N, y el sumador también debe ser de largo 2N. En este
algoritmo el número de sumas es proporcional a Q, lo cual es demasiado elevado.
11.2. Multiplicación mediante desplazamientos.
El siguiente algoritmo, corresponde a la multiplicación manual (con papely lápiz) en la cual se
va multiplicando las cifras del multiplicando por cada una de las cifras del multiplicador:
0111*0011
0111
0111
0000
0000
0010101
Puede reducirse el número de veces que se repite la operación, notando que, en el sistema
binario, sólo debe efectuarse la suma del multiplicando si la cifra correspondiente del
multiplicador es uno; ya que la multiplicación por cero nocambia el producto parcial.
Entonces en lugar de efectuar todas las sumas del multiplicando (desplazado una posición hacia
la izquierda) por cada una de las cifras del multiplicador, podría efectuarse:
0111*0011
0111
0111
0010101
La detección si debe realizarse o no la suma del multiplicando R, puede lograrse observando
solamente la cifra menos significativa de Q, siempre que después derealizada la suma, se divida
(en forma entera) el valor de Q. Esto logra un corrimiento hacia la derecha de Q, en una
posición. Además el multiplicando debe desplazarse en una posición hacia la izquierda.
El siguiente algoritmo desarrolla las ideas anteriores, y la suma se realiza a lo más en N pasos;
es decir una vez por cada cifra de Q.
Nótese que (Q&1), que determina el valor del bit menossignificativo de Q, equivale a la
condición: Q impar.
/*Algoritmo b P y R de largo 2N. Q largo N. Sumador ancho 2N */
/* Q y R positivos P = R * Q */
for(j=N; j>=0; j--)
{
if(Q&1) P+=R; Q=Q/2; R=R*2;
}
La secuencia anterior destruye los valores originales de Q y R.
Algoritmos de multiplicación y división 3

Si reemplazamos la división y multiplicación entera por 2, por funciones querealicen
corrimientos, se tiene el siguiente algoritmo:
/*Algoritmo 1 P y R de largo 2N. Q largo N Sumador ancho 2N. */
/* Q y R positivos P = R * Q */
for(j=N;j>=0;j--)
{
if(Q&1) P+=R;
lls(R); lrs(Q);
}
Se emplean las funciones lls y lrs, por logical left shift y logical right shift respectivamente.
Como los bits de signo de Q y R siempre serán ceros, pueden efectuarse corrimientos...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Algoritmos De Booth Para La Multiplicación Y División En Binario
  • Multiplicacion y division
  • Division Y Multiplicacion
  • multiplicacion y division
  • Multiplicacion y division
  • multiplicacion division
  • Algoritmo de la division
  • Unidad 3 Multiplicacion Y Division

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS