Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
muito importante entender que qualquer sistema de ponto flutuante binrio pode
representar apenas um nmero finito de valores de ponto flutuante na forma exata.
Alm disso, tenha em mente que os nmeros podem ser representados em IEEE
ficam espalhados por uma variedade muito grande.
O objetivo do padro IEEE, que projetado para clculos de engenharia,
maximizar a preciso (para obter mais prximo possvel para o valor real do
nmero).
Detalhes do IEEE
Nmeros de ponto flutuante so representados no seguinte formato, onde
[expoente] o expoente binrio:
X = Fraction * 2^(exponent - bias)
.75 = 1,5 * 2 ^ -1 = 0011 1111 0100 0000... 0000 0000 = 3F40 0000 hex
O expoente tendenciosa 126, 011 1111 binrio em 0 e mantissa (1) 100
0000... 0000 0000, que 1 1/2.
2.5 = 1,25 * 2 ^ 1 = 0100 0000 0010 0000... 0000 0000 = 4020 0000 hex
Exatamente o mesmo que 2, exceto que o bit que representa 1/4 definido em
mantissa.
0,1 = 1,6 * 2 ^ -4 = 0011 1101 1100 1100... 1100 1101 = 3DCC CCCD hex
1/10 uma frao de repetio em binrio. Mantissa menos de 1.6 e o expoente
tendenciosa informa que o 1.6 seja dividido por 16 ( 011 1101 1 em binrio, que
123 em decimal). O expoente true 123-127 = - 4, o que significa que o fator pelo
qual multiplicar 2 * * -4 = 1/16. Observe que o mantissa armazenado
arredondado o ltimo bit. Isso uma tentativa para representar o nmero
unrepresentable mais precisamente possvel. (O motivo que 1/10 e 1/100 so no
exatamente representveis no binrio semelhante maneira como 1/3 no
exatamente representveis no formato decimal.)
0 = 1.0 * 2 ^ -128 = zeros um caso especial.
Erro de arredondamento
Esse erro ocorre quando todos os bits em um nmero binrio no podem ser
usados em um clculo.
Exemplo: Adicionar 0,0001 para 0.9900 (preciso simples)
Decimal 0,0001 sero representados como:
(1) 10100011011011100010111 * 2^(-14+Bias) (13 principais 0s em binrio!)
0.9900 sero representados como:
(1) 11111010111000010100011 * 2^(-1+Bias)
Agora para adicionar, na verdade, esses nmeros, os pontos decimais de
(binrios) devem estar alinhados. Para isso deve ser Unnormalized. Aqui est
a adio resultante:
.000000000000011010001101 * 2^0 <- Only 11 of 23 Bits retained
+.111111010111000010100011 * 2^0
________________________________
.111111010111011100110000 * 2^0
2.
3.
4.
5.
6.
7.