Você está na página 1de 24

Nmeros em Ponto

Flutuante

Consideraes Iniciais

Massa do Eltron
Em muitos clculos o intervalo gramas
de nmeros
0,000.000.000.000.000.000.000.000.000.9
utilizados muito grande. Por exemplo, um
clculo
em astronomia poderia envolver:
Massa
do Sol
1 ...

... 28

2.000.000.000.000.000.000.000.000.000.000.000
1 ...
... 33 ,0 gramas

2.000.000.000.000.000.000.000.000.000.000.000
,,000.000.000.000.000.000.000.000.000.9
2.000.000.000.000.000.000.000.000.000.000.000
000.000.000.000.000.000.000.000.000.9
1 ....
.... 62

N = M xx 10EE
33 g
2,0 x 10 33

-28
-28 g
9,0
x
10
(Intervalo de representao)

Expoente
Mantissa

(Preciso do nmero)

IFES/CEL/2012

Consideraes Iniciais
Do exposto, o que necessrio um sistema de
representao de nmeros em que o intervalo dos
nmeros exprimveis seja independente da quantidade
de dgitos significativos;

A principal vantagem da representao em ponto

flutuante que ela pode representar uma grande faixa de


nmeros se comparada ao sistema de ponto fixo.

IFES/CEL/2012

Princpios do Ponto Flutuante


Seja uma representao com 5 (cinco) dgitos:

Ponto fixo
O maior nmero representvel = 0,99999
O menor nmero representvel = 0,00001

Ponto flutuante

(0,1< /M/ <1)

O maior nmero representvel = 0,999 x 10 99


O menor nmero representvel = 0,100 x 10-99

A representao em PF permite representar uma faixa muito


maior de nmeros. O preo a ser pago que esta representao
tem trs dgitos de preciso, em oposio representao por
ponto fixo que possui cinco dgitos de preciso.
IFES/CEL/2012

Faixa de Representao

Ponto flutuante
O maior nmero representvel = 0,999 x 10 99
O menor nmero representvel = 0,100 x 10-99

Overflow
negativo

-------------------

Nmeros
negativos
exprimveis

Underflow
negativo positivo

Nmeros
positivos
exprimveis

Overflow
positivo

- - - - - - ----------------------------------------------- - - - - - -

-------------------

Zero
-0,999 x 10 99

-0,100 x 10 -99

0,100 x 10 -99

0,999 x 10 99
IFES/CEL/2012

Padro de Representao

1970 e 1980
Cientistas e engenheiros de diferentes empresas de
computao trabalharam na busca de uniformizar a
representao dos nmeros em computadores.

Objetivo
Uniformizar os resultados obtidos por um mesmo programa
computacional executado em diferentes mquinas.

Grupo de Trabalho
...organizado pelo Institute for Electrical and Electronics
Engineers. Entre os fabricantes estavam: Apple, Zilog, DEC,
Intel,
Hawlett-Packard,
Motorola
e
National
Semicondutores.

IFES/CEL/2012

Metas Principais

Especificar como representar os nmeros em preciso


simples e dupla;

Padronizar o arredondamento nas operaes nesses


sistemas;

Estabelecer critrios para padronizar situaes como


diviso por zero e operaes envolvendo infinito.

1985

O resultado deste trabalho foi publicado e ficou


conhecido oficialmente como ANSI IEEE Std 754-1985,
que definiu 3 formatos de representao: preciso
simples (32 bits), dupla (64 bits) e estendida (80 bits).

Padro de Ponto Flutuante IEEE754


Preciso Simples

O nmero real representado por 32 bits;


23 bits so reservados para a mantissa;
8 bits so reservados para o expoente da base, que um nmero inteiro;
1 bit reservado para o sinal do nmero (positivo ou negativo).
31

30

23

22

.... ee00 m
m2222 m
m2121 m
m2020 ...
... m
m11 m
m00
ee77 ee66 ee55 ....

Sinal

Expoente

Mantissa

Bit de Sinal (+)

Quando em 0 o bit de sinal representa um nmero positivo, e;


Quando em 1 o bit de sinal representa um nmero negativo.
IFES/CEL/2012

Padro de Ponto Flutuante IEEE754

Preciso Dupla

O nmero real representado por 64 bits;

52 bits so reservados para a mantissa;

11 bits reservados para o expoente da base, que um nmero inteiro;

1 bit reservado para o sinal do nmero: 0 positivo, 1 negativo.


63

62

52

... ee00
ee1010 ee99 ee88 ...

Sinal

Expoente

51

m5151 m
m5050 m
m4949 ...
... m
m11 m
m00
m
Mantissa

IFES/CEL/2012

Consideraes sobre o Expoente


Preciso Simples

Os bits reservados para representar o expoente devem conter


tambm a informao do sinal deste expoente;
Neste caso utilizada a notao de excesso 127 para o expoente;
Seja a tabela:
Expoente (e)2

30

23

E = e - 127

11
11
11

11
11
11

11
11
11

11
11
11

11
11
11

11
11
11

11
11
00

11
00
11

No-normalizado
+ 128

128
128
127
127
126
126

11
00
00

00
11
11

00
11
11

00
11
11

00
11
11

00
11
11

00
11
11

00
11
00

++11
00
--11

22
11
00

00
00
00

00
00
00

00
00
00

00
00
00

00
00
00

00
00
00

11
00
00

00
11
00

255
255
254
254
253
253
.

Para a Preciso Dupla utilize o mesmo raciocnio.

127
++127
126
++126

Maior Expoente (2 +127)

125
--125
-126
Menor Expoente (2 -126)
-126
No-normalizado
- 127
IFES/CEL/2012

Consideraes sobre a Mantissa


Mantissa Normalizada

Uma mantissa normalizada comea com um ponto binrio, seguido


por um bit 1 e, depois, pelo resto da mantissa;

Considerando o fato que a base binria, o primeiro bit da


mantissa sempre 1, no precisando ser armazenado, basta supor
que ele existe. o denominado bit escondido;

Consequentemente a mantissa consiste em um bit 1 oculto, um


ponto binrio oculto e depois mais 23 ou 52 bits qualquer;

Esta normalizao permite um ganho na preciso, pois podemos


considerar que a mantissa armazenada em 24 bits

Se todos os 23 ou 52 bits da mantissa forem 0s, a mantissa ter o


valor numrico 1,0;

Se todos eles forem 1s, a mantissa ser numericamente um


pouquinho menor do que 2,0 (1 < m < 2).
IFES/CEL/2012

Exemplo
Converta o valor (0,125)1010 para o padro IEEE de preciso
simples.

Primeiramente o valor (0,125)10 escrito no formato binrio


normalizado: 0,0012 = 1,0 x 2-3

Em seguida o expoente -3 representado na seguncia


(01111100)2, que corresponde ao valor 12410 (e = -3 + 127).

Neste caso a mantissa tem apenas um dgito significativo


que armazenado no bit escondido. Logo, os 23 bits para
a mantissa ficam iguais a zero.
31 30

23

22

00 0011111111110000 00000000000000000000000000000000000000000000 00

Sinal

Expoente

Mantissa

IFES/CEL/2012

Considere agora o valor decimal (-0,1)1010:

Primeiramente o valor (0,1)10 escrito no formato binrio:


(0.00011001100110011...)2 = (1,1001100110011...)2 x 2-4.

Em seguida o expoente (-4)10 representado:


(127)10 + (-4)10 = (123)10 = (01111011)2.

O nmero (-0,1)10 ser ento armazenado como:


31 30

23

22

11 00111111 11001111 1100001111000011110000111100001111000011110000

Sinal

Expoente

Mantissa

IFES/CEL/2012

Limites de Representao

Menor nmero positivo

A menor mantissa 1,0 e o menor expoente (00000001) 2,

ento o menor nmero positivo que pode ser armazenado


(1.00000...)2 x 2-126 ~ 1.18 x 10-38.
00 00000000 00000011 0000000000000000000000000000000000000000000000

Maior nmero positivo

O maior nmero positivo ter como mantissa um nmero

com 24 bits iguais a um e como expoente (11111110)2 =


(1.11111...11)2 x 2 +127 = (2 - 2-23) x 2+127 ~ 2+128 ~ 3.4 x 10+38.
00 11111111 11111100 1111111111111111111111111111111111111111111111
IFES/CEL/2012

Tipos Numricos IEEE754


Normalizado

Exp<<Max
Max
00<<Exp

Qualquerpadro
padrode
debits
bits
Qualquer

No-normalizado

00

Qualquerpadro
padrode
debits
bitsdiferente
diferentede
dezero
zero
Qualquer

Zero

00

00

Infinito

11 11 11 11 11 11 11 11

00

Not-a-Number

11 11 11 11 11 11 11 11

Qualquerpadro
padrode
debits
bitsdiferente
diferentede
dezero
zero
Qualquer

IFES/CEL/2012

Casos Especiais

Situao de ocorrncia de Zero

O zero representado com as sequncias de bits todos

nulos tanto para o expoente quanto para a mantissa.


00 00000000 00000000 0000000000000000000000000000000000000000000000

Situao de Overflow

Qualquer resultado acima de +3.4 x 10+38 ou abaixo de -3.4 x

10+38 resultar em overflow (+) e sero representados por:


00 11111111 11111111 0000000000000000000000000000000000000000000000
11 11111111 11111111 0000000000000000000000000000000000000000000000
IFES/CEL/2012

Casos Especiais

Underflow

Se a sequncia de bits para o expoente for nula e a

sequncia de bits para a mantissa for no nula ento,


temos a ocorrncia de nmeros menores que 2-126 (1.18 x
10-38), que no estaro na forma normalizada, isto , o
primeiro dgito da mantissa no ser igual a 1.
Por exemplo:
00 0000000000000000 1100000000000000000000000000000000000000000000

= (2-1 x 2-126) = 2-127

00 0000000000000000 0000000000000000000000000000000000000000000011

= (2-23 x 2-126) = 2-149


IFES/CEL/2012

Casos Especiais

Not a Number (NaN)

Se a sequncia de bits para o expoente for composta por

todos dgitos iguais a um e a sequncia de bits para a


mantissa for no nula ento temos a ocorrncia dos
denominados NaN: Not a Number, que representam
resultados de expresses invlidas como:

00 xx
Exemplo:

00 // 00

//

--

00 1111111111111111 1100000000000000000000000000000000000000000000

= NaN

00 1111111111111111 0000000000000000000000000000000000000000000011

= NaN
IFES/CEL/2012

Caractersticas do Padro IEEE754


Item

Preciso Simples

Preciso Dupla

Bit de sinal

Bit de expoente

11

Bit de mantissa

23

52

Total de bits

32

64

Sistema de expoente

Excesso de 127

Excesso de 1023

Intervalo do expoente

- 126 a + 127

- 1.022 a 1.023

O menor, normalizado

2 -126

2 -1.022

O maior, normalizado

aprox. 2 +128

aprox. 2 +1.024

aprox. 10 -38 a 10 +38

aprox. 10 -308 a 10 +308

Intervalo decimal

IFES/CEL/2012

Aritmtica
em
Ponto
Flutuante

Adio em Ponto Flutuante


Efetue a operao na Base 10, com a mantissa em 3 dgitos e o expoente em 2

A = 9,9991010 xx 1011 e B = 1,6101010 xx 10-1-1

Alinhar os expoentes (do menor)

B = 1,610 x 10-1 = 0,0161 x 101

Somar as mantissas

A = 9,999 x 101
B = 0,016 x 101
S = 10,015 x 101

Normalizar (se necessrio)

S = 10,015 x 101 = 1,0015 x 102

Arredondar (ou truncar) o resultado

S = 1,002 x 102 ou S = 1,001 x 102


IFES/CEL/2012

Subtrao em Ponto Flutuante


Efetuar (A - B): supor uma representao na Base 2 com a mantissa em trs bits

A = 0,51010 e B = 0,43751010

Converter para binrio (PF)

A = 1,0002 x 2-1

B = 1,1102 x 2-2

Alinhar os expoentes (do menor)

B = 0,1112 x 2-1

Subtrair as mantissas

_ A = 1,0002 x 2-1
B = 0,1112 x 2-1
S = 0,0012 x 2-1

Normalizar o resultado

S = 1,0002 x 2-4 = 0,062510


IFES/CEL/2012

Concluso
Para somar dois nmeros em PF necessrio efetuar o
deslocamento da mantissa, ajustando os expoentes para
que se tornem iguais.
Em seguida os nmeros podero ser somados e o
resultado normalizado se necessrio.

Adicione os valores 3EE00000H e 3D800000H e


apresente o resultado normalizado no padro de preciso
simples IEEE 754.
IFES/CEL/2012

FIM

marcelo@ifes.edu.br

IFES/CEL/2012