Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 9 PDF
Aula 9 PDF
Flutuante
Nmeros Fracionrios em
repr.2 binria i
2i1
4
2
1
bi bi1 b2 b1 b0 . b1 b2 b3 bj
1/2
1/4
1/8
2j
Bits direita do ponto binrio representam potncias de 2
fracionrias
i
O nmero racional representado como: k
bk 2
k = j
1
Exemplos
Nmero Representao
5 + 3/4 101.112
2 + 7/8 10.1112
63/64 0.1111112
Observaes
Diviso por 2: shift right
Multiplicao por 2: shift left
Nmeros da forma 0.1111112 esto
prximos de 1.0
1/2 + 1/4 + 1/8 + + 1/2i + 1.0
Esta representao tem limitaes
Limitao
possvel representar exatamente apenas nmeros racionais que
tenham parte fracionria da forma:
Exemplos 0
Nmero Representao bk 2
k
=
k j
1/8 (= 0.125) 0.0012
1/16 (= 0.0625) 0.00112
5.625 101.1012
2
Representao IEEE
As mais diversas representaes de ponto
flutuante j foram propostas, mas
O padro IEEE 754 atualmente o mais
utilizado:
Criado em 1985 como padro para representao e
aritmtica em ponto flutuante
Implementado na grande maioria das CPUs
3
IEEE 754: Precises de
Ponto Flutuante
s exp frac
Tamanhos
float: exp = 8 bits, frac = 23 bits, s = 1 bit
Total: 32 bits
Faixa de valores: 2-126 at 2127
double: exp =11 bits, frac = 52 bits, s = 1 bit
Total: 64 bits
Faixa de valores: 2-1022 at 21023
Preciso estendida: exp =15 bits, frac = 63 bits,s = 1 bit
Total: 80 bits
Faixa de valores: 2-16382 at 216383
1 bit desperdiado
4
Faixa de Valores
Normalizado De-normalizado Normalizado
] [
-1 0 1
De-normalizado: f (-1,1)
exp = 0,
0 M = frac
f
Normalizado: f (-,1] [1, +)
exp 0 (00..01 11..10), M= 1.0 + frac
Exemplos:
frac = 0...02 = 010 M = 1.0
frac = 0101...02 = 0.25 + 0.062510 M = 1,03125
5
O Exponte na rep. normalizada
O Expoente E, pode ser positivo ou negativo,
mas no armazenado em complemento a dois
Usa
Usa-se
se a representao
representao excesso
excesso (ou bias)
E = Exp Bias
Exp : valor sem sinal representado por exp
Bias : valor de excesso
127 em float (Exp: 1254, E: -126127)
1023 em double (Exp: 12046, E: -10221023)
2n-1 1 (no caso geral), onde n o nmero de bits em exp
Exemplos:
exp = 1 E = (1-127) = -126
exp = 127 E = (127-127) = 0
exp = 225 E = (225-127) = 98
6
Exemplo (preciso dupla)
Valor
double D = 178.125 = 128+32+16+2 + 0.125;
178 12510 = 10110010.001
178.125 10110010 0012
1.7812510 = 1.01100100012 X 27
Mantissa
M = 1. 01100100012
frac = 01100100010002
Expoente
p
E = 7
exp = E + Bias = 7+ 1023 = 1030 = 100000001102
0 10000000110 01100100010000000
S exp (11) frac (52)
Valores Especiais
7
A aritmtica com esses nmeros
Para qualquer ponto flutuante a vale:
a+ =
a + - = -
+ - = NaN
NaN + a = NaN
-1 = NaN
a / = 0
* =
a / 0 = , se a0
0 / 0 = NaN
/ = NaN
* 0 = NaN
Mais informaes
htt // t
http://steve.holasch.net/cgindex/Ieeefloat.html
h l h t/ i d /I fl t ht l