Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PUNTO FLOTANTE
Bibliografa
1.-"Computer arithmetic algorithms". I. Koren, Prentice Hall, 1993
2.-"Computer architecture. A quantitative approach". Hennessy & Patterson, Morgan
Kaufmann, 1995. Apndice A.
3.-"What every computer scientist should know about floating-point arithmetic", ACM
Computing Surveys. V.23, n.1, pg.5-18.
exponente
+ 6.02 10 -23
mantisa
base
signo
exponente
+ 1.01110 2 -1101
mantisa
base
8 bits
23 bits
nmeros negativos
expresables
-(2.0-2-23)2127
nmeros positivos
expresables
-1.02-128
1.02-128
overflow
positivo
(2.0-2-23)2127
9 Obsrvese que la cantidad de nmeros representables es 232 (igual que en punto fijo). Lo que
permite la representacin punto flotante es ampliar el rango representable a costa de aumentar el
espacio entre nmeros representable (un espacio que no es uniforme).
-n
2n
4n
5
IEEE 754
2 formatos con signo explcito, representacin sesgada del exponente (sesgo igual a (2n-1-1=127), mantisa
normalizada con un 1 implcito (1.M) y base 2.
IEEE 754
4 modos de redondeo:
Redondeo al ms cercano (al par en caso de empate)
Redondeo a ms infinito (por exceso)
Redondeo a menos infinito (por defecto)
Redondeo a cero (truncamiento)
El estndar exige que el resultado de las operaciones sea el mismo que se obtendra si se realizasen con
precisin absoluta y despus se redondease.
Hacer la operacin con precisin absoluta no tiene sentido pues se podran necesitar operandos de
mucha anchura.
Al realizar una operacin cuntos bits adicionales se necesitan para tener la precisin requerida?
Un bit r para el redondeo
Un bit s (sticky) para determinar cuando r=1 si el nmero est por encima de 0,5
Tipo de redondeo
-
+
0
Ms prximo
+1 si (r or s)
+1 si (r and p0) or (r and s)
grssss
Como el resultado final slo se va a almacenar sobre el registro P, los bits contenidos en A nos servirn
para redondear el resultado.
Como el nmero est comprendido entre 1 y 3, x0 puede ser tanto 1 como 0.
En cada uno de estos casos el redondeo se realiza de modo distinto:
Xo=0 => Desplazar P una posicin a la izquierda, introduciendo el bit g de A como bit menos
significativo de P. Los bit r y s (or de todos los s de A) nos sirven para redondear.
X0=1 => El punto decimal se desplaza una posicin a la izquierda, y se ajusta el exponente
sumndole 1. Poner s= (r or s) y r = g.
El redondeo siempre se hace de acuerdo a la tabla vista anteriormente.
10
11
6.144102
9.975104
0.06144104
+ 9.97500104
10.03644104
operacin
rm
no
n
i
c
iza
al
1.003644105
+ 0.000500105
1.004105
redondeo
Mtodo de suma/resta :
12
1.001000*23
1.110001*23
10.111001*23
1.0111001*24
Bit de redondeo
13
Resultado
Clculo vlido
1.001000*23
+ 1.101001*2-1
1.001000*23
1.101001*2-1
1.0 0 1 0 0 0
*23
+ 0.0 0 0 1 1 0 1 0 0 1*23
1.0 0 1 1 1 0 1 0 0 1*23
1.001000 *23
0.00011011*23 Bit de sticky
1.00111011*23
1.001111 *23
Bits de redondeo
Resultado
1.001111 *23
Bit de redondeo
14
Caso 1: e1=e2
1.100000*2-1
Normalizacin
1s1<2
0.5 s2<1
ulp s<1.5
Clculo exacto
Clculo exacto
Resultado
1.0 0 1 1 1 1*23
- 1.0 0 1 0 0 1*22
1.1 1 1 0 0 0*23
- 1.1 0 0 0 0 1*22
1. 0 0 1 1 1 1
*23
-0. 1 0 0 1 0 0 1 *23
0 .1 0 1 0 1 0 1 *23
1. 0 0 1 1 1 1
*23
-0. 1 1 0 0 0 0 1 *23
1 .0 0 0 1 1 1 1 *23
1.010101 *22
Bit de guarda
Resultado
1.001000 *22
Bit de redondeo
15
1s1<2
ulps2< 0.5
0,5 <s 2
Clculo exacto
Clculo vlido
Resultado
1.0 0 0 0 0 0*2
- 1.1 1 0 0 0 1*2-1
1.0 0 0 0 0 0*23
-1. 1 1 0 0 0 1*2-1
1. 0 0 0 0 0 0
*23
-0. 0 0 0 1 1 1 0 0 0 1 *23
0 .1 1 1 0 0 0 1 1 1 1*23
1. 0 0 0 0 0 0
*23
- 0. 0 0 0 1 1 1 0 0 1 *23 Bit de sticky
0. 1 1 1 0 0 0 1 1 1*23
1. 110010 *23
Bits de redondeo
Resultado
1. 110010 *23
Bit de redondeo
Bit de guarda
16
17