Descargar

Operaciones de Punto Flotante (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
edu.red

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

edu.red

– 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

edu.red

– Empaquetado del exponente: Exponente = 31 + Bias = 31 + 31 = 62

– Cálculo del signo: Signo A * Signo B = 1

– Resultado final:

Multiplicación: Ejemplo

edu.red

(Gp:) Operación de suma

edu.red

Operación: A + B Operandos: A y B (32 bits, 8 de exponente)

A = 1052770304 B = 1120403456

A = B = Suma: Ejemplo

edu.red

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

edu.red

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

edu.red

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

edu.red

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

edu.red

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

edu.red

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

edu.red

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

edu.red

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

edu.red

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

edu.red

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

edu.red

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

edu.red

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

edu.red

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

edu.red

Resultado Final Suma: Pasos

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente