Anda di halaman 1dari 24

Rafael Figueiredo de Carvalho Costa raffccc@gmail.

com

Motivao Ponto Flutuante O Padro IEEE 754-1985 O Padro IEEE 754-2008 Referncias Dvidas

Na representao de grandezas podemos ter uma faixa de variao dos nmeros muito grande. Ex:
1. Massa do Eltron: 9x10-28 gramas 2. Massa do Sol: 2x1033 gramas


1. 2.

Faixa de variao: > 1060 Exemplo de Representao


0000000000000000000000000000000000.0000000000000000000000000009 2000000000000000000000000000000000.0000000000000000000000000000

Como represent-los?

Deve-se usar um sistema de representao de maneira que a faixa de variao dos nmeros seja independente do nmero de dgitos significativos dos nmeros representados.
Soluo: Notao Cientfica

Nmero x Baseexpoente

Existem vrias formas de representao que flutuam a vrgula mudando o expoente:


Exemplo:
2,14 = 0,0214 x 102 = 214 x 10-2

Forma Normalizada: nico dgito diferente de zero antes da vrgula.


S existe uma forma de representar um nmero.
Em geral, melhor que a forma no normalizada na representao computacional de nmeros em ponto flutuante.

Formato de representao digital de nmeros reais usado nos PCs. Na representao normalizada binria h apenas um 1 antes da vrgula.

Tudo armazenado em base 2.


Exemplo:
1,01101x(10)101 Mantissa = 1,01101 Expoente = 101

Caso a forma normalizada seja usada, o 1 antes da vrgula pode ficar implcito economizando um bit. o chamado bit escondido.
O nmero de bits para representar a mantissa e o expoente depende da norma.

At a dcada de 1980, cada fabricante computador tinha seu prprio formato representao de ponto flutuante.

de de

IEEE: Institute of Electrical and Electronic Engineers. Organizao composta por engenheiros, cientistas e estudantes, que desenvolvem padres para a indstria de computadores e eletro-eletrnicos. O padro IEEE 754 foi inventado para padronizar essa forma de representao.

A primeira verso desse padro data de 1985 e perdurou por 23 anos at ser substituda em Agosto de 2008 por uma outra verso da IEEE 754.
Padro mais usado para computao de ponto flutuante

Formatos e aritmtica binria so preservados no IEEE 754-2008

4 formatos de representao de valores de ponto flutuante:


Preciso simples (32 bits)

Preciso dupla (64 bits)


Preciso simples estendida comumente usada) (>= 43 bits, no

Preciso dupla estendida (>= 79 bits, usualmente implementada com 80 bits)

Apenas a preciso simples requerida pelo padro, as outras so opcionais.

Polarizao do Expoente
O expoente polarizado por:

(2e-1)-1

e: Nmero de bits do expoente Representao de um nmero com expoente 25 numa representao com 8 bits para expoente:
25 + (28-1)-1 = 25 + 128 -1 = 152

A polarizao realizada pois os expoentes tm que possuir valores com sinal para poder representar valores grandes e pequenos. Portanto, o expoente polarizado antes de ser armazenado ajustando seu valor para coloc-lo dentro de uma faixa sem sinal, adequado para comparao.

O bit mais significativo da mantissa no armazenado, porm ele pode ser determinado pelo valor do expoente polarizado.
Casos
1. 2. 3. Se 0 < expoente < 2e-1, ento o bit mais significativo 1 e o nmero dito normalizado. Expoente = 0 e Mantissa 0, nmero no normalizado. Expoente = 0 e Mantissa = 0, 0 depende do bit de sinal.

4.
5.

Expoente = 2e-1 e Mantissa = 0, depende do bit de sinal.


Expoente = 2e-1 e Mantissa 0, NaN.

Preciso simples

Polarizado com 127


Expoente vai de -126 a +127. -127 no pode pois significa nmero no normalizado ou zero. 128 seria polarizado para 255, no pode pois NaN ou infinito

O valor do nmero :
v= s x 2e x m

Exemplo:
Como representar o nmero -118.625 no padro IEEE 754?

Exemplo:

Para transformar de volta: Bit 1 no sinal indica nmero negativo.

Expoente 10000101 = 13310


x + (28-1)-1 = 133 x + 127 = 133 x=6

Portanto o valor antes da polarizao era:

Com o bit escondido temos a mantissa:


1.110110101 x 26 = 1110110.101 = 118.625

Como o bit de sinal representa um nmero negativo temos:


-118.625

Quadro resumo:
Preciso No normalizado
2-149 a (1-2-23) x 2126 2-1074 a (1-2-52)x21022

Normalizado

Decimal

Simples

2-126 a (2-2-23) x 2127 2-1022 a (2-2-52)x21023

~10-44.85 a ~1038.53 ~10-323.3 a ~10308.3

Dupla

Preciso dupla

Essencialmente a mesma coisa da simples s que os campos so maiores. Polarizado com 1023

preciso

Arredondamento
4 modos de arredondamento Padro
1. Arredondamento para o mais prximo: Ties to Even: Se o nmero cai no meio, ele arredondado para o valo
mais prximo com um 0 no bit menos significativo. Ties away from zero: se o nmero cai no meio ele arredondado para o valor mais prximo para cima (para nmeros positivos) ou para baixo (para nmeros negativos).

Arredondamentos direcionados
1. 2. 3. Arredondamento para 0: Truncamento Arredondamento para +: Arredonda direcionado para + Arredondamento para -: Arredonda direcionado para -

Inclui praticamente todo o IEE 754-1985 e o IEE 854-1987 que generalizava o IEEE 754-1985 para cobrir aritmtica decimal alm da binria.
Define:
Formatos Aritmticos Formatos de Intercmbio Algoritmos de Arredondamento Operaes Manuseio de Excees

Operaes
As operaes requeridas pela norma so:
Operaes Aritmticas(adio, subtrao, multiplicao, diviso, raiz quadrada, etc.) Converses (entre formatos) Dimensionamento e quantificao Cpia e manipulamento do sinal (abs, negate, etc.) Classificao e teste para NaNs Testes e definio de sinalizadores Operaes diversas

Uma nova clusula dessa norma recomenda 50 operaes incluindo log, potenciao, etc. Porm todas so opcionais.

Manuseio de Exceo
5 tipos de exceo, cada uma possui um sinalizador de status correspondente que levantado quando a exceo ocorre.
Operao Invlida. Ex: Raiz quadrada de nmero negativo Diviso por zero Overflow Underflow Inexatido

Reproducibilidade
O IEEE 754-1985 implementaes permitia vrias variaes de

Codificao de alguns valores Deteco de algumas excees

O IEE 754-2008 enxugou vrias dessas, porm algumas variaes ainda existem (especialmente para formatos binrios) A norma recomenda que os padres de linguagem devem prover meios de escrever programas reproduzveis e descreve o que deve ser feito para atingir isso.

KAHAN, W. Lecture Notes on the Status of IEEE Standard 754 for Binary loating-Point Arithmetic.
MARKSTEIN, Peter. The new IEEE-754 Standard for Floating Point Arithmetic.

IEEE Standard 754 Floating Point Numbers, <http://steve.hollasch.net/cgindex/coding/ieeefloat.html> Acessado em 31 de Agosto de 2010.
A norma IEEE-754 para vrgula flutuante, <http://wwwasc.di.fct.unl.pt/~jcc/asc1/Teoricas/a12/node5.html> Acessado em 31 de Agosto de 2010. FECHINE, Joseana. A Informao e sua Representao

Anda mungkin juga menyukai