A = B = Exponente A = 62 – Bias = 62 – 31 = 31 Mantisa A = 0,99998474121093 Signo A = 1 A = -1,99998474121093 x 231 Exponente B = 30 – Bias = 30 – 31 = -1 Mantisa B = 0,63905334472656 Signo B = 0 B = +1,63905334472656 x 2-1 Multiplicación: Ejemplo
– Cálculo del exponente: Exponente = Exponente A + Exponente B = 31 – 1 = 30
– Cálculo del producto de las mantisas (incluyendo el 1):
El bit más significativo del resultado es igual a 1, por lo tanto se incrementa el exponente calculado anteriormente en 1: Exponente = Exponente + 1 = 30 + 1 = 31
Multiplicación: Ejemplo
– Empaquetado del exponente: Exponente = 31 + Bias = 31 + 31 = 62
– Cálculo del signo: Signo A * Signo B = 1
– Resultado final:
Multiplicación: Ejemplo
(Gp:) Operación de suma
Operación: A + B Operandos: A y B (32 bits, 8 de exponente)
A = 1052770304 B = 1120403456
A = B = Suma: Ejemplo
Exponente A = 125 – Bias = 125 – 127 = -2 Mantisa A = 0,5 Signo A = 0 A = +1,5 x 2-2 Exponente B = 133 – Bias = 133 – 127 = 6 Mantisa B = 0,5625 Signo B = 0 B = +1,5625 x 26 A = B = Suma: Ejemplo
PASO 1 Si eA < eB intercambiar los operados. Colocar el exponente del resultado tentativamente en eA (Gp:) El eA es menor al eB por lo que intercambiamos los operandos (Gp:) B = +1,5 x 2-2 (Gp:) A = +1,5625 x 26
A = B = Suma: Pasos
Si eA < eB intercambiar los operados. Colocar el exponente del resultado tentativamente en eA Establecemos como exponente del resultado al del operando A: exp = 6 Suma: Pasos PASO 1
Si los signos de los operandos son distintos reemplazar el significand B por su complemente a dos. Los signos de los operandos son iguales, por lo tanto no se hace nada PASO 2 Suma: Pasos
Colocar el significand B (sB) en un registro de p bits y desplazarlo a la derecha eA-eB posiciones (introduciendo 1’s si fue complementado en el paso anterior). Con los bits desplazados fuera del registro setear los flags g (bit más significativo, r (siguiente bit) y s (restantes bits). Se coloca el significand B (sB) en un registro de 24 bits Suma: Pasos PASO 3
Se desplaza el contenido del registro a derecha eA – eB posiciones (8 posiciones) (Gp:) En el paso 2 no hubo complementación por lo que se rellena con 0’s
Suma: Pasos Colocar el significand B (sB) en un registro de p bits y desplazarlo a la derecha eA-eB posiciones (introduciendo 1’s si fue complementado en el paso anterior). Con los bits desplazados fuera del registro setear los flags g (bit más significativo, r (siguiente bit) y s (restantes bits). PASO 3
Se desplaza el contenido del registro a derecha eA – eB posiciones (8 posiciones) Suma: Pasos Colocar el significand B (sB) en un registro de p bits y desplazarlo a la derecha eA-eB posiciones (introduciendo 1’s si fue complementado en el paso anterior). Con los bits desplazados fuera del registro setear los flags g (bit más significativo, r (siguiente bit) y s (restantes bits). PASO 3
Calcular un significand preliminar S = sA + sB sumando sA al registro de p bits que contiene sB. Si los signos de los operandos A y B son diferentes, el MSB de S es 1, y no hubo carry-out entonces S es negativo. Reemplazar S por su complemento a dos. (Gp:) sA
(Gp:) sB
(Gp:) S
Los signos de los operandos son iguales por lo que el S queda como está Suma: Pasos PASO 4
Desplazar S de la siguiente manera: – Si los signos de los operandos son iguales y hubo carry-out en el paso 4 desplazar S una posición a derecha, colocando en la posición más significativa un 1 (el carry-out). – Si no se cumple cualquiera de las condiciones anteriores desplazar S a izquierda hasta que esté normalizado. En el primer desplazamiento introducir en el bit menos significativo el valor de g, luego introducir 0’s. Ajustar el valor del exponente de acuerdo a los desplazamientos realizados. El número está normalizado Suma: Pasos PASO 5
Ajustar r y s. – Si S fue desplazado a derecha en el paso 5: r := LSB de S antes del desplazamiento s := or(g, r, s) – Si no hubo desplazamiento en el paso 5: r := g s := or(r, s) – Si hubo un sólo desplazamiento a izquierda en el paso 5 dejar r y s como están – Si hubo dos o más desplazamientos a izquierda en el paso 5: r := 0 s := 0 No hubo desplazamiento en el paso 5 por lo que: r = g = 0 y s = or(r, s) = or(0, 0) = 0 Suma: Pasos PASO 6
Redondear S utilizando la tabla de modos de redondeo. Si el redondeo provoca un carry-out, desplazar S a derecha y ajustar el exponente. Luego de estos pasos se obtiene el significand del resultado de la operación suma. Suma: Pasos PASO 7
Calcular el signo del resultado. Si los operandos tienen el mismo signo, éste es el signo del resultado. En caso contrario el signo del resultado depende de cuál de los operandos es negativo, si hubo un intercambio de operandos en el paso 1, y si S fue reemplazado por su complemento a dos en el paso 4 (ver tabla de signos) Suma: Pasos PASO 8
Calcular el signo del resultado. Si los operandos tienen el mismo signo, éste es el signo del resultado. En caso contrario el signo del resultado depende de cuál de los operandos es negativo, si hubo un intercambio de operandos en el paso 1, y si S fue reemplazado por su complemento a dos en el paso 4 (ver tabla de signos) Ambos operando son positivos, por lo que el resultado de la operación de suma será positivo Suma: Pasos PASO 8
Resultado Final Suma: Pasos
Página anterior | Volver al principio del trabajo | Página siguiente |