Vous êtes sur la page 1sur 6

Representacin de la

Informacin
Punto Flotante

INFORMTICA I
Ing E Colombo

Representacin de nmeros REALES

Decimales representables (ejemplo)


Nmeros en punto flotante con fraccin de 3 dgitos
significativos y exponente de dos dgitos ( .fff ee)

Nmeros reales Nmeros en punto flotante

MANTISA x BASE

EXPONENTE

Lmites:
De precisin: determinada por el N de dgitos
significativos de la mantisa
De magnitud: determinada por el rango representable
por la base y el N de dgitos del exponente
Errores de representacin Valores aproximados en
Irracionales
Racionales con muchos decimales significativos
Nmeros muy grandes o muy pequeos por encima o
debajo del rango representable
Ing E Colombo

-.999 10+99

-99 0
-.001
-.100 10
10-99

.001 10-99
.100

.999 10+99

Solo son representables los valores de zonas 2 y 5


Los valores de zonas 1, 3, 4, 6 y el cero estn fuera de rango
El cero es una buena aproximacin para todos los valores de
zonas 3 y 4
Los nmeros representables no forman un continuo
El espacio entre valores no es constante, la densidad de
valores representables es mayor al aproximarnos a cero
En los clculos, los resultados en zonas 2 y 5 pero con
valores no representables exactos deben ser aproximados
a un valor representable por medio del redondeo
Ing E Colombo

Coma Flotante BINARIO

Punto Flotante BINARIO (Coma Flotante)


El valor del nmero vienen dado por N = M bE
donde b es la base de representacin de la mantisa M o
Fraccin y E el exponente

La Mantisa puede representarse como entero o como


fraccin con una coma implcita a la izquierda de mp-1 o mp-2

La representacin consiste en dos partes, denominadas,


mantisa M de p bits, y exponente E de q bits, tal que
n=p+q

El Exponente suele representarse en binario exceso 2q-1


Ejemplo: utilizando exponente en exceso 32 de 6 bits y signo y
magnitud para la mantisa entera de 10 bit

Tanto la mantisa como el exponente se representan en


algunos de los sistemas descritos con anterioridad

La coma flotante concatena a cada nmero un factor de


escala
Exponente (q bits)

Ing E Colombo

Ing E Colombo

12

= 100000

00 0000 1100

12 x 20

- 12

= 100000

10 0000 1100

-12 x 20

24

= 100001

00 0000 1100

12 x 21

= 011111

00 0000 0001

1 x 2-1

- 0.25 = 011110

10 0000 0001

-1 x 2-2

0.5

Mantisa (p bits)
5

Ing E Colombo

Coma Flotante BINARIO

Nmero Binario Normalizado (REAL FLOAT)

El rango de representacin positivo es la mayor mantisa


positiva por el mximo exponente positivo hasta la menor
mantisa positiva por el mximo exponente negativo, es
decir desde (2p - 1 1) para la mantisa y
(2q) para el exponente

1.yyyyyyyyy x 2eeee

En memoria se guarda solo el signo, la


mantisa yyyyyyyyy y el exponente eeee

Para mantisas fraccionarias se suele colocar la coma


implcitamente a la derecha del bit de signo de la mantisa
La mantisa se encuentra normalizada, cuando se eliminan todos
los dgitos no significativos a la derecha de la coma,
ajustando el exponente (con desplazamientos)

S Exponente (q bits)

Mantisa (p bits)

En muchos casos, como ese bit siempre es 1, este primer bit no


se almacena y se llama bit implcito ya que se conoce su valor

Ing E Colombo

Nmero Binario REAL Normalizado

Mantisa o Fraccin Normalizada y Exponente


Sumar
0.713 x 10-2 y 0.964 x 10-1
1. Alinear los exponentes desplazando el menor
0.0713 x 10-1
0.9640 x 10-1
2. Sumar
1.0353 x 10-1

Entero (Leading) 1
Punto Binario
Mantisa (Significand) = 1.yyyyyyyyy
Exponente (signado)
Aritmetica

c 0 .c1c 2 c 3c 4 c n 1
n 1

1
1
1
1
ci 2i = c0 + c1 + c2 + c3 + c4 +
2
4
8
16
i =0
Ing E Colombo

Nmeros Binarios de Punto Flotante


Sumar

1.0101 x 23

1.1011 x 21

0.10353 x 100

4. Redondear

0.104 x 100

Ing E Colombo

10

Con 3 dgitos significativos


4.56
+ .0357
4.5957
4.60 Valor redondeado

3. Normalizar y Chequear exceso (Overflow) y


defecto (Underflow)
1.101111 x 23

Ing E Colombo

3. Normalizar

Redondeo en decimal (Round Off)

1. Alinear los exponente desplazando el menor


1.0101 x 23
0.011011 x 23
2. Sumar
1.101111 x 23

Ing E Colombo

Nmeros Decimales en Punto Flotante

1.yyyyyyyyy x 2eeee

c=

Ing E Colombo

Que pasa si tenemos?


4.5950
4.60
Redondeo a valor par

11

Ing E Colombo

12

Redondeo en binario
Binario
.00
.01
.10
.11

Nmeros Binarios en Punto Flotante


Sumar
1.0101 x 23 y 1.1011 x 21
1. Alinear los exponentes desplazando el menor
1.0101 x 23
0.011011 x 23
2. Sumar
1.101111 x 23

Decimal
.00
.25
.50
Si hay algn 1 restante ?
Si no, redondear a par
.75

3. Normalizar y Chequear exceso y defecto


1.101111 x 23
4. Redondear a 4 bits
Bit de guarda = 1 y Bit de Redondeo = 1
1.1100 x 23

Ing E Colombo

Ing E Colombo

13

Aritmtica en Punto Flotante

14

IEEE-754 (1985)

Si X = Xf . BXe e Y = Yf . BYe
Entonces:

What Every Computer Scientist Should Know


About Floating-Point Arithmetic
David Goldberg, ACM Computing Surveys, Mayo de 1991

X + Y = (Xf .

BXe-Ye

+ Yf ) .

BYe,

Xe <= Ye

http://docs.sun.com/source/806-3568/ncg_goldberg.html

X - Y = (Xf . BXe-Ye - Yf ) . BYe, Xe <= Ye


X * Y = (Xf * Yf) . BXe+Ye
X / Y = (Xf / Yf) . BXe-Ye

Ing E Colombo

Ing E Colombo

15

16

IEEE 754 - 1985

IEEE-754 - 1985

Formatos de Punto Flotante

Usado virtualmente en todas las computadoras


actuales

FLOAT - Precisin simple (32 bits - 4 Byte)

Sabores

Nmero normalizado: (-1)s x 2e-127 x 1.f

S 8 bit exp
Rango:

Precisin Simple (float): 32 bits


(1 para el signo, 8 para el exponente, 23 para la fraccin
/ mantisa / significante)

Ing E Colombo

a
a

00800000
1.17549435 e-38

DOUBLE - Precisin doble (64 bits - 8 Byte)


Nmero normalizado:
Rango:

52 bit mantisa fraccin

(-1)s x 2e-1023 x 1.f

7fefffff ffffffff
1.7976931348623157 e+308

a
a

00100000 00000000
2.2250738585072014 e-308

LONG DOUBLE - Precisin extendida (80 bits - 10 Byte)


S

15 bit exp

Nmero normalizado:
Rango:

Ing E Colombo

7f7fffff
3.40282347 e+38

S 11 bit exp

Precisin Doble (double): 64 bits


(1 para el signo, 11 para el exponente, 52 para la
fraccin / mantisa / significante)
Precisin Doble Extendida (long double): 80 bits
(1 para el signo, 15 para el exponente, 64 para la
fraccin / mantisa / significante)

23 bit mantisa

17

64 bit mantisa fraccin

(-1)s x 2e-16383 x 1.f

7ffe ffffffff ffffffff


1.18973149535723176505 e+4932

a
a

Ing E Colombo

0001 80000000 00000000


3.36210314311209350626 e-4932
18

IEEE-754

IEEE-754 Precisin Simple


Simple

Doble

Long Doble

# bits total

32

64

80

# bits exponente

11

15

# bits de la fraccin

23

52

64
16383

Exceso exponente

127

1023

Exponente mximo

127

1023

4095

Exponente mnimo

-126

-1022

-4094

Cantidad de
exponentes
Cantidad de
fracciones

254

2046

4094

223

252

264

1.98 . 231

1.99 . 263

1.99 . 279

7 dgitos
[10-38, 1038]

15 dgitos
[10-308, 10308]

19 dgitos
[10-4932, 104932]

Cantidad de valores
Rango aprox.
(base 10)

Ing E Colombo

Mantisa

Cero positivo

Cero negativo

-0

Nmero
normalizado
positivo

0 < e < 255

2e-127 (1.f)

Nmero
normalizado
negativo

0 < e < 255

-2e-127 (1.f)

representado

Ing E Colombo

22

IEEE-754 Precisin Doble

Signo

Exponente
sesgado

Mantisa

Valor
representado

Infinito positivo

255

Infinito

Infinito negativo

255

-Infinito

Not a Number
(NaN)

0 o 1

255

f != 0

NaN

Desnormalizado
positivo

f != 0

2-126 (0.f)

Desnormalizado
negativo

f != 0

-2-126 (0.f)

Ing E Colombo

Valor

Signo

Exponente
sesgado

Mantisa

Cero positivo

Cero
negativo

-0

Nmero
normalizado
positivo

0 < e <
2047

2e-1023 (1.f)

Nmero
normalizado
negativo

0 < e <
2047

-2e-1023 (1.f)

Ing E Colombo

23

IEEE-754 Precisin Doble

Infinito positivo

Exponente
sesgado

19

IEEE-754 Precisin Simple

Valor

Signo

representado

24

Aritmtica en Punto Flotante

Signo

Exponente
sesgado

Mantisa

Valor
representado

2047

Infinito

Si X = Xf . BXe e Y = Yf . BYe
Entonces:
X + Y = (Xf . BXe-Ye + Yf ) . BYe, Xe <= Ye

Infinito negativo

2047

-Infinito

Not a Number
(NaN)

0 o 1

2047

f != 0

NaN

Desnormalizado
positivo

f != 0

2-1022 (0.f)

f != 0

-2-1022
(0.f)

Desnormalizado
negativo

X - Y = (Xf . BXe-Ye - Yf ) . BYe, Xe <= Ye


X * Y = (Xf * Yf) . BXe+Ye

0
Ing E Colombo

Ing E Colombo

X / Y = (Xf / Yf) . BXe-Ye

25

Ing E Colombo

26

IEEE 754 - Estndar de Punto Flotante

IEEE 754 - Estndar de Punto Flotante

Numero binario REAL Normalizado:


1.yyyyyyyyy x 2eeee

Numero binario REAL Normalizado:


1.yyyyyyyyy x 2eeee

IEEE 754 de Simple Precisin

IEEE 754 de Simple Precisin

(-1)S x ( 1 + F) x 2E-127

(-1)S x ( 1 + F) x 2E-127

Exp binario desplazado


E>0
s

exponente+127

1 bit

mantisa 1

E (8 bits)

i =1

1
1
+
4 16

E (8 bits)

Ing E Colombo

28

IEEE 754: (-1)S x ( 1 + F) x 2E-127

= .25+.0625 = .3125

s
1bit

E = 27 + 2 = 128 + 2 = 130

exponente+127

mantisa 1

E (8 bits)

F (23 bits)

E = 2 + 127 = 129 = 1000 0001


1 + F = 1.01000 ...

Numero = (-1)S x ( 1 + F) x 2E-127


= ( 1 + .3125) x 2130 127
= 1.3125 x 23 = 1.3125 x 8 = 10.5
Ing E Colombo

F (23 bits)

Representar 5 en formato IEEE 754


5 = 101.0 x 20 = 1.01 x 22

1 10000010 01010000000000000000000

c ix 2 i =

mantisa 1

IEEE 754 - Estndar de Punto Flotante

Que numero es:

23

1 bit

27

IEEE 754 - Estndar de Punto Flotante

F =

exponente+127

Solo Cero es F = 0 y E = 0
Simplifica el intercambio de datos
Se compara usando procesos de enteros
Exactitud, Redondeo, Desborde y Subdesborde

F (23 bits)

Ing E Colombo

1 10000001 01000000000000000000000
29

Ing E Colombo

30

Punto Flotante Distribucin de


Valores

IEEE 754 - Estndar de Punto Flotante


Numero binario REAL Normalizado:
1.yyyyyyyyy x 2eeee
IEEE 754 de Doble Precisin

Analizando la distribucin de valores que pueden


representarse en un sistema de punto flotante de 6 bit

(-1)S x ( 1 + F) x 2E-1023
s

exponente+1023

1 bit

1 bit signo + 2 bits exponente + 3 bits fraccin

mantisa 1

E (11 bits)

F (20 bits)

Distribucin de valores Impar


Punto Flotante != Notacin Cientfica
Los valores de Punto Flotante se concentran al
acercarnos a cero

mantisa 1 (continuacin)
F (32 bits)
Ing E Colombo

Ing E Colombo

31

Ing E Colombo

32

Punto Fijo Distribucin de Valores

Coma Flotante Punto Flotante


En los sistemas de coma fija la resolucin es constante.
Con coma flotante, la resolucin vara en funcin del
exponente

Ntese que hay una distribucin de valores par y que


adems la resolucin es constante en todo el rango

El error absoluto se define como la diferencia entre dos

Una distribucin par nos permite representar nmeros


fraccionales fcilmente, de manera lineal y con
menos sobrecarga de cdigos

representaciones consecutivas dividido 2, en punto


flotante este error no es constante

El rango puede ajustarse segn lo requiera la


aplicacin

El error relativo en cambio permanece constante

Ing E Colombo

33

Ing E Colombo

35

Ing E Colombo

34

CONSULTAS

Ing E Colombo

Vous aimerez peut-être aussi