Escolar Documentos
Profissional Documentos
Cultura Documentos
SISTEMA DE O
P NTO L
F T
U N
AU TE
± 0.d1d 2 Ld n * Be
Propriedades:
Vejamos algumas propriedades dos números do sistema de ponto flutuante F = F(B, n, e1, e2):
1
Lógica e Matemática Computacional - Sistema de Ponto Flutuante
Expoentes Mantissas
e 2e 0.100 0.101 0.110 0.111
-1 1/2 1/4 5/16 3/8 7/16
0 1 1/2 5/8 3/4 7/8
1 2 1 5/4 3/2 7/4
2 4 2 5/2 3 7/2
Exercício 2: Desenhe sobre o eixo real todos os números positivos do sistema de ponto
flutuante do exemplo 3.
Podemos observar que os números em notação de ponto flutuante não estão uniformemente
distribuídos no intervalo [0, 7/2]. O mesmo ocorrerá no intervalo simétrico [-7/2, 0]. No entanto,
existem diferentes zonas de distribuição uniforme (por exemplo, 1/4, 5/16, 3/8, 7/16), nas quais
notamos que os números possuem o mesmo expoente. Mais, entre expoentes sucessivos da base
existem uma quantidade constante de números de ponto flutuante, dada por Bn −1(B − 1) = 4 . E mais, a
tabela nos informa a cardinalidade do sistema de ponto flutuante, pois ela é igual ao dobro do número
de elementos positivos (por causa dos negativos) mais um (o zero). Estas informações ajudam na
2
Lógica e Matemática Computacional - Sistema de Ponto Flutuante
verificação da propriedade (c) acima. Observamos, também, que nesta tabela encontramos o maior e o
menor elemento positivo (com fundo cinza).
Ainda pode-se observar que há uma região entre o menor elemento positivo de F e o zero e,
simetricamente, entre o maior elemento negativo e o zero, denominada Rego
ãi de nU derflow . As
regiões situadas antes do menor elemento negativo e após o maior elemento de F são denominadas
Regiões de Overflow . Estas regiões são denotadas e dadas, respectivamente, pelos intervalos
R U = (−m,0) ∪ (0, m) e R O = (−∞,−M) ∪ (M,+∞) . No exemplo acima, R U = (−1 / 4,0) ∪ (0,1 / 4) e
R O = (−∞,−7 / 2) ∪ (7 / 2,+∞) .
Exercício 3: Encontre todos os elementos positivos (em base dez), a cardinalidade, a região
de overflow e a região de underflow para o sistema de ponto flutuante F(3,2,-2,2).
Os números encontrados na região de overflow são enxergados pela máquina como infinitos,
ou seja, o que chamamos de rp oblema de overflow. Os números que estão na região de underflow são
vistos pela máquina como zero, ou seja, x ∈ R U ⇒ x → 0 . Se encontramos em uma máquina a
mensagem “problema de overflow” , é enorme a possibilidade de termos a divisão por um número na
região de underflow, ou seja, para ela, a divisão por zero.
Quanto a outro número x, ou x pertence ao sistema de ponto flutuante, ou x é representado por
um elemento do sistema de ponto flutuante. Em geral esta representação é feita de uma das duas
formas a seguir. Para explica-las, consideremos dois números consecutivos do sistema de ponto
flutuante, ∇x < ∆x , de tal forma que ∇x < x < ∆x .
a) Representação por Corte ou Truncamento : Esta representação em F(B, n,e1, e2) é obtida
considerando-se apenas os n primeiros algarismos, na base B, da mantissa do número. Em outras
palavras, um número x é representado pelo maior número em ponto flutuante que seja menor que x, ou
T
seja, x ⎯⎯→ ∇x (atenção na notação). Observe que esta forma de representação pode gerar um grande
erro de arredondamento. Para tanto basta que x esteja muito próximo de ∆x .
b) Representaço
ã o
p r rA redondamento : Nesta representação, x é representado pelo elemento do
sistema de ponto flutuante que estiver mais próximo dele, diminuindo ao máximo o erro de
3
Lógica e Matemática Computacional - Sistema de Ponto Flutuante
∇x + ∆x A
arredondamento. Assim, se ∇x < x < , então x ⎯⎯→ ∇x (atenção na notação). Caso
2
∇x + ∆x A
contrário, se ≤ x < ∆x , então x ⎯⎯→ ∆x . Esta representação em F(B, n,e1, e2) é obtida, no
2
caso de bases pares, considerando-se os n primeiros algarismos, na base B, da mantissa do número,
mas devemos olhar o próximo dígito (dígito n+1). Se ele for maior ou igual que B/2, então
aumentamos o n-ésimo dígito em uma unidade. Caso contrário, se menor que B/2, então mantemos o
n-ésimo dígito. O caso de bases ímpares não será abordado aqui.
Não se deve confundir representação por truncamento e representação por arredondamento
com erro de truncamento e erro de arredondamento. O erro de truncamento é o erro devido ao
método numérico aplicado (por exemplo, expansão truncada de uma série, linearização de uma
função). O erro de arredondamento é o erro devido a representação de um número real em um
sistema de ponto flutuante.
Exemplo 4: Em F(10, 4, -98, 100), as quantidades 0.333333, 0.123952, 0.348446 e 0.666...
são representadas por corte, respectivamente, como 0.3333, 0.1239, 0.3484 e 0.6666 (observe que
apenas consideramos os primeiros dígitos do número) e são representados por arredondamento,
respectivamente, por 0.3333, 0.1240, 0.3484 e 0.6667 (observe que quando o próximo dígito é maior
que 5, o último algarismo é aumentado de uma unidade).
Exemplo 5: O número real 9/8 = 1.125 é escrito na base dois como 0.1001*21. Portanto, ele
não pertence ao sistema F(2, 3, -1, 2). No entanto, sua representação por corte é 0.100*21 (igual a 1 na
base dez) e por arredondamento é 0.101*21 (igual a 1,25 na base 10). Observe que o erro de
arredondamento em qualquer das duas representações é o mesmo, mas isto, em geral, não ocorre. Por
outro lado, os números reais x = 5/4 e y = 3/8 pertencem a este sistema, mas sua soma, x + y = 13/8,
está fora do sistema de ponto flutuante em questão.
Exercício 4: Represente os números abaixo, por arredondamento e por corte, no sistema de
ponto flutuante F(6,4,-2,3):
4
Lógica e Matemática Computacional - Sistema de Ponto Flutuante
A
4) Por arredondamento: a) 0.0055555 ⎯⎯→ 0.01; b) Problema de Overflow; c) 0.000123425
A A A A
⎯⎯→ 0; d) 0.055555 ⎯⎯→ 0.1; e) 13.053 ⎯⎯→ .13.05 . Por truncamento: a) 0.0055555 ⎯⎯→
A A
0.005555; b) Problema de Overflow; c) 0.000123425 ⎯⎯→ 0; d) 0.055555 ⎯⎯→ 0.05555; e)
A
13.053 ⎯⎯→ .13.05 .
A A
a ) (4210 − 4.99) − 0.02 ⎯⎯→ 4210, 4210 − (4.99 + 0.02) ⎯⎯→ 4200
A A
5) b) (0.123 / 7.97) * 84.9 ⎯⎯→1.31, (0.123 * 84.9) / 7.97 ⎯⎯→1.30
A A
c) 15.9 * (4.99 + 0.02) ⎯⎯→ 79.7, (15.9 * 4.99) + (15.9 * 0.02) ⎯⎯→ 79.6