Aritm_pf
Páginas: 11 (2598 palabras)
Publicado: 13 de mayo de 2016
COMA FLOTANTE
AMPLIACIÓN DE ESTRUCTURA DE COMPUTADORES
Daniel Mozos, Marcos Sánchez-Elez, José Luis Risco
Facultad de Informática
1
Aritmética en coma flotante
1.
2.
3.
4.
5.
Representación de números en coma flotante
IEEE 754
Suma y resta en coma flotante
Multiplicación en coma flotante
División en coma flotante
2
Bibliografía
•"Computer architecture. A quantitativeapproach". Hennessy & Patterson, Morgan
Kaufmann, 1995. Apéndice A (David Goldberg).
•"Computer arithmetic algorithms". I. Koren, Prentice Hall, 2002
•“Computer Arithmetic: Algorithms and Hardware Design”, B.Parhami. Oxford UP. 2000
•"What every computer scientist should know about floating-point arithmetic", David
Goldberg, ACM Computing Surveys. V.23, n.1, pg.5-18, 1991.
3
Representación de nºs.en coma flotante
La representación en coma flotante está basada en la notación científica:
– La coma decimal no se halla en una posición fija dentro de la secuencia de bits, sino que
su posición se indica como una potencia de la base:
signo
exponente
+ 6.02 · 10 -23
mantisa
base
signo
exponente
+ 1.01110 · 2 -1101
mantisa
base
En todo número en coma flotante se distinguen trescomponentes:
– Signo: indica el signo del número (0= positivo, 1=negativo)
– Mantisa: contiene la magnitud del número (en binario puro)
– Exponente: contiene el valor de la potencia de la base (sesgado)
– La base queda implícita y es común a todos los números, la más usada es 2.
El valor de la secuencia de bits ( s, ep-1, ..., e0, mq-1, ..., m0 ) es: (−1) s ⋅ V ( m) ⋅ 2V ( e )
Dado que un mismo número puedetener varias representaciones (0.110·25 = 110·22 = 0.0110·26)
los números suelen estar normalizados:
– un número está normalizado si tiene la forma 1.xx...·2xx... (ó 0.1xx ...·2xx...)
– dado que los números normalizados en base 2 tienen siempre un 1 a la izquierda, éste
suele quedar implícito (pero debe ser tenido en cuenta al calcular el valor de la
secuencia)
4
Representación de nºs. en comaflotante
Sea el siguiente formato de coma flotante de 32 bits (base 2, normalizado)
1 bit
8 bits
23 bits
s
e
m
9 El rango de valores representable por cada uno de los campos es:
y Exponente (8 bits con sesgo de 128) : -128 ... +127
y Mantisa (23 bits normalizados) : los valores binarios representables oscilan entre 1.00... y
1.11..., es decir entre 1 y 2-2-23 (2-ulp) ( 1.11...1 = 10.00...0- 0.0...1 )
underflow underflow
negativo positivo
overflow
negativo
números negativos
expresables
-(2.0-2-23)·2127
números positivos
expresables
-1.0·2-128
0
1.0·2-128
overflow
positivo
(2.0-2-23)·2127
9 Obsérvese que la cantidad de números representables es 232 (igual que en coma fija). Lo que
permite la representación en coma flotante es ampliar el rango representable a costa deaumentar
el espacio entre números representable (un espacio que no es uniforme).
-n
0
n
2·n
4·n
5
IEEE 754
2 formatos con signo explícito, representación sesgada del exponente (sesgo igual a (2n-1-1=127), mantisa
normalizada con un 1 implícito (1.M) y base 2.
– precisión simple (32 bits): 1 bit de signo, 8 de exponente, 23 de mantisa
• 1.0·2-126 ... (2-2-23)·2127 = 1.2·10-38 .. 3.4·1038
–precisión doble (64 bits): 1 bit de signo, 11 de exponente, 52 de mantisa
• 1.0·2-1022 ... (2-2-52)·21023 = 2.2·10-308 .. 1,8·10308
2 formatos ampliados para cálculos intermedios (43 y 79 bits).
Codificaciones con significado especial
– Infinito (e=255, m=0): representan cualquier valor de la región de overflow
– NaN (Not-a-Number) (e=255, m>0): se obtienen como resultado de operaciones inválidas
–Número denormalizado (e=0, m>0): es un número sin normalizar cuyo bit implícito se supone que
es 0. Al ser el exponente 0, permiten representar números en las regiones de underflow. El valor del
exponente es el del exponente más pequeño de los números no denormalizados: -126 en precisión
simple y –1022 en doble.
– Cero (e=0, m=0): número no normalizado que representa al cero (en lugar de al 1)...
Leer documento completo
Regístrate para leer el documento completo.