Você está na página 1de 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

Faixa de variao: > 1060

Exemplo de Representao
1. 0000000000000000000000000000000000.0000000000000000000000000009
2. 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 de


computador tinha seu prprio formato de
representao de ponto flutuante.

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 (>= 43 bits, no comumente
usada)
Preciso dupla estendida
implementada com 80 bits)

(>=

79

bits,

usualmente

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.

Se 0 < expoente < 2e-1, ento o bit mais significativo 1 e o


nmero dito normalizado.

2.

Expoente = 0 e Mantissa 0, nmero no normalizado.

3.

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

4.

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

5.

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

Portanto o valor antes da polarizao era:

Com o bit escondido temos a mantissa:

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

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

Normalizado

Decimal

Simples

2-149
a (1-2-23) x 2126

2-126
a (2-2-23) x 2127

~10-44.85
a ~1038.53

Dupla

2-1074
a (1-2-52)x21022

2-1022
a (2-2-52)x21023

~10-323.3
a ~10308.3

Preciso dupla

Essencialmente a mesma coisa da preciso


simples s que os campos so maiores.

Polarizado com 1023

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,
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://www-asc.di.fct.unl.pt/~jcc/asc1/Teoricas/a12/node5.html> Acessado
em 31 de Agosto de 2010.

FECHINE, Joseana. A Informao e sua Representao

Peter.

The

new

IEEE-754

Standard

for

Floating

Point

Você também pode gostar