Sistemas de Vírgula Flutuante

Propaganda
Sistemas de numeração de vírgula flutuante
Sistemas de Vírgula Flutuante
Luiz C. G. Lopes
Departamento de Matemática e Engenharias
Universidade da Madeira
Análise e Computação Numérica
MAT 2 05 – 2007/08
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Definição. Diz-se que um número real x ∈ R\{0} é um
número de vírgula flutuante normalizado se forem verificadas
as seguintes condições:
x = m × βe
m = ±0,d1 d2 . . . dp = ±( dβ1 +
d2
β2
+ ··· +
dp
β p ),
p∈N
1 ≤ d1 ≤ β − 1, 0 ≤ di ≤ β − 1, i = 2, . . . , p
emin ≤ e ≤ emax , emin , emax ∈ Z, emin ≤ 0, emax ≥ 1
onde:
β é a base do sistema de numeração, β ≥ 2;
e é o expoente inteiro da base, sendo emin o menor e emax o
maior expoente;
m é a mantissa;
p é a precisão, isto é, a quantidade máxima de dígitos usados
na representação do número, e
di , i = 1, . . . , p são os dígitos da mantissa.
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Definição. Diz-se que um número real x ∈ R\{0} é um
número de vírgula flutuante normalizado se forem verificadas
as seguintes condições:
x = m × βe
m = ±0,d1 d2 . . . dp = ±( dβ1 +
d2
β2
+ ··· +
dp
β p ),
p∈N
1 ≤ d1 ≤ β − 1, 0 ≤ di ≤ β − 1, i = 2, . . . , p
emin ≤ e ≤ emax , emin , emax ∈ Z, emin ≤ 0, emax ≥ 1
onde:
β é a base do sistema de numeração, β ≥ 2;
e é o expoente inteiro da base, sendo emin o menor e emax o
maior expoente;
m é a mantissa;
p é a precisão, isto é, a quantidade máxima de dígitos usados
na representação do número, e
di , i = 1, . . . , p são os dígitos da mantissa.
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Definição. Chama-se sistema de numeração de vírgula
flutuante a união de todos os números de vírgula flutuante com
o zero, que não tem representação normalizada e é escrito da
seguinte forma:
emin
0 = 0, 000
| {z. . . 0} ×β .
p
Um sistema de numeração de vírgula flutuante de base β,
precisão p, tendo emin e emax como limites do domínio de
variação do expoente, denota-se por
F = F (β, p, emin , emax ).
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Definição. Chama-se sistema de numeração de vírgula
flutuante a união de todos os números de vírgula flutuante com
o zero, que não tem representação normalizada e é escrito da
seguinte forma:
emin
0 = 0, 000
| {z. . . 0} ×β .
p
Um sistema de numeração de vírgula flutuante de base β,
precisão p, tendo emin e emax como limites do domínio de
variação do expoente, denota-se por
F = F (β, p, emin , emax ).
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Sistemas de vírgula flutuante de algumas antigas
calculadoras e computadores (em precisão simples) e formatos
estabelecidos na norma IEEE 754:
F (β, p, emin , emax ) β p
emin emax
10 10
−98
99
HP 41CV
HP 48GX
10 12
−499 499
Burroughs B6700
8 13
−51
77
IBM 3090
16 6
−64
63
Cray T-94
2 47 −1022 1023
Cray 1
2 48 −8192 8191
Cray X-MP
2 47 −16385 8190
IEEE (simples)
2 24
−126 127
IEEE (duplo)
2 53 −1022 1023
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Sistemas de vírgula flutuante de algumas antigas
calculadoras e computadores (em precisão simples) e formatos
estabelecidos na norma IEEE 754:
F (β, p, emin , emax ) β p
emin emax
HP 41CV
10 10
−98
99
HP 48GX
10 12
−499 499
Burroughs B6700
8 13
−51
77
IBM 3090
16 6
−64
63
Cray T-94
2 47 −1022 1023
Cray 1
2 48 −8192 8191
Cray X-MP
2 47 −16385 8190
IEEE (simples)
2 24
−126 127
IEEE (duplo)
2 53 −1022 1023
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Sistemas de vírgula flutuante de algumas antigas
calculadoras e computadores (em precisão simples) e formatos
estabelecidos na norma IEEE 754:
F (β, p, emin , emax ) β p
emin emax
HP 41CV
10 10
−98
99
HP 48GX
10 12
−499 499
Burroughs B6700
8 13
−51
77
IBM 3090
16 6
−64
63
Cray T-94
2 47 −1022 1023
Cray 1
2 48 −8192 8191
Cray X-MP
2 47 −16385 8190
IEEE (simples)
2 24
−126 127
IEEE (duplo)
2 53 −1022 1023
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Sistemas de vírgula flutuante de algumas antigas
calculadoras e computadores (em precisão simples) e formatos
estabelecidos na norma IEEE 754:
F (β, p, emin , emax ) β p
emin emax
HP 41CV
10 10
−98
99
HP 48GX
10 12
−499 499
Burroughs B6700
8 13
−51
77
IBM 3090
16 6
−64
63
Cray T-94
2 47 −1022 1023
Cray 1
2 48 −8192 8191
Cray X-MP
2 47 −16385 8190
IEEE (simples)
2 24
−126 127
IEEE (duplo)
2 53 −1022 1023
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Sistemas de vírgula flutuante de algumas antigas
calculadoras e computadores (em precisão simples) e formatos
estabelecidos na norma IEEE 754:
F (β, p, emin , emax ) β p
emin emax
HP 41CV
10 10
−98
99
HP 48GX
10 12
−499 499
Burroughs B6700
8 13
−51
77
IBM 3090
16 6
−64
63
Cray T-94
2 47 −1022 1023
Cray 1
2 48 −8192 8191
Cray X-MP
2 47 −16385 8190
IEEE (simples)
2 24
−126 127
IEEE (duplo)
2 53 −1022 1023
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Num sistema de vírgula flutuante F (β, p, emin , emax ), de base β,
como o primeiro dígito deve ser diferente de zero, restam
(β − 1) dígitos possíveis para a primeira posição após a
vírgula, podendo-se ter β dígitos nas restantes (p − 1)
posições; assim, o número de mantissas positivas é dado por
(β − 1) × β p−1 .
Como cada uma dessas mantissas pode ser acompanhada por
um dos (emax − emin + 1) expoentes possíveis, a quantidade de
números de vírgula flutuante positivos é igual a
(β − 1)(β p−1 )(emax − emin + 1).
Logo, incluindo os números negativos e o zero, obtém-se a
cardinalidade de F :
#F = 2(β − 1)(β p−1 )(emax − emin + 1) + 1 .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Num sistema de vírgula flutuante F (β, p, emin , emax ), de base β,
como o primeiro dígito deve ser diferente de zero, restam
(β − 1) dígitos possíveis para a primeira posição após a
vírgula, podendo-se ter β dígitos nas restantes (p − 1)
posições; assim, o número de mantissas positivas é dado por
(β − 1) × β p−1 .
Como cada uma dessas mantissas pode ser acompanhada por
um dos (emax − emin + 1) expoentes possíveis, a quantidade de
números de vírgula flutuante positivos é igual a
(β − 1)(β p−1 )(emax − emin + 1).
Logo, incluindo os números negativos e o zero, obtém-se a
cardinalidade de F :
#F = 2(β − 1)(β p−1 )(emax − emin + 1) + 1 .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Num sistema de vírgula flutuante F (β, p, emin , emax ), de base β,
como o primeiro dígito deve ser diferente de zero, restam
(β − 1) dígitos possíveis para a primeira posição após a
vírgula, podendo-se ter β dígitos nas restantes (p − 1)
posições; assim, o número de mantissas positivas é dado por
(β − 1) × β p−1 .
Como cada uma dessas mantissas pode ser acompanhada por
um dos (emax − emin + 1) expoentes possíveis, a quantidade de
números de vírgula flutuante positivos é igual a
(β − 1)(β p−1 )(emax − emin + 1).
Logo, incluindo os números negativos e o zero, obtém-se a
cardinalidade de F :
#F = 2(β − 1)(β p−1 )(emax − emin + 1) + 1 .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
O menor número de vírgula flutuante positivo, num sistema de
vírgula flutuante F (β, p, emin , emax ), é:
b = 0,1 |00{z
. . . 0} ×β emin ,
p−1
cujo valor decimal é dado por:
b = (β emin −1 )10 .
O maior número de vírgula flutuante, em F (β, p, emin , emax ), é:
B = 0,[β − 1][β − 1] . . . [β − 1] × β emax .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
O menor número de vírgula flutuante positivo, num sistema de
vírgula flutuante F (β, p, emin , emax ), é:
b = 0,1 |00{z
. . . 0} ×β emin ,
p−1
cujo valor decimal é dado por:
b = (β emin −1 )10 .
O maior número de vírgula flutuante, em F (β, p, emin , emax ), é:
B = 0,[β − 1][β − 1] . . . [β − 1] × β emax .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
O menor número de vírgula flutuante positivo, num sistema de
vírgula flutuante F (β, p, emin , emax ), é:
b = 0,1 |00{z
. . . 0} ×β emin ,
p−1
cujo valor decimal é dado por:
b = (β emin −1 )10 .
O maior número de vírgula flutuante, em F (β, p, emin , emax ), é:
B = 0,[β − 1][β − 1] . . . [β − 1] × β emax .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Toda a mantissa tem como primeiro dígito, antes da vírgula,
o zero. Logo,
|m| < 1.
Por outro lado, se |m| < β −1 , não teríamos um número de
vírgula flutuante normalizado, pois, para que isto aconteça,
o primeiro dígito após a vírgula não pode ser nulo; portanto,
|m| ≥ β −1 .
Assim, para qualquer mantissa m, vale:
β −1 ≤ |m| < 1.
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Toda a mantissa tem como primeiro dígito, antes da vírgula,
o zero. Logo,
|m| < 1.
Por outro lado, se |m| < β −1 , não teríamos um número de
vírgula flutuante normalizado, pois, para que isto aconteça,
o primeiro dígito após a vírgula não pode ser nulo; portanto,
|m| ≥ β −1 .
Assim, para qualquer mantissa m, vale:
β −1 ≤ |m| < 1.
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Toda a mantissa tem como primeiro dígito, antes da vírgula,
o zero. Logo,
|m| < 1.
Por outro lado, se |m| < β −1 , não teríamos um número de
vírgula flutuante normalizado, pois, para que isto aconteça,
o primeiro dígito após a vírgula não pode ser nulo; portanto,
|m| ≥ β −1 .
Assim, para qualquer mantissa m, vale:
β −1 ≤ |m| < 1.
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Não levando em conta os diversos códigos para representação
dos números negativos inteiros, tem-se que:
∀x ∈ F , −x ∈ F .
Deve-se observar que, no caso da representação em
complemento de dois, pode-se ter
x ∈ F e −x ∈
/ F,
quando x for o maior inteiro positivo.
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Não levando em conta os diversos códigos para representação
dos números negativos inteiros, tem-se que:
∀x ∈ F , −x ∈ F .
Deve-se observar que, no caso da representação em
complemento de dois, pode-se ter
x ∈ F e −x ∈
/ F,
quando x for o maior inteiro positivo.
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
O conjunto F de números de vírgula flutuante é limitado, finito
e discreto.
Os números de F não se encontram uniformemente
distribuídos, existindo, no entanto, diferentes zonas onde eles
aparecem distribuídos de maneira uniforme.
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
O conjunto F de números de vírgula flutuante é limitado, finito
e discreto.
Os números de F não se encontram uniformemente
distribuídos, existindo, no entanto, diferentes zonas onde eles
aparecem distribuídos de maneira uniforme.
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
O conjunto F de números de vírgula flutuante é limitado, finito
e discreto.
Os números de F não se encontram uniformemente
distribuídos, existindo, no entanto, diferentes zonas onde eles
aparecem distribuídos de maneira uniforme.
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
A quantidade constante de números de vírgula flutuante
pertencentes a cada uma dessas zonas, definidas pelas
potências sucessivas da base, corresponde ao número de
distintas mantissas positivas.
Portanto, em F (β, p, emin , emax ), a quantidade de números de
máquina entre potências sucessivas da base é dada por:
c = (β − 1)β p−1 .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
A quantidade constante de números de vírgula flutuante
pertencentes a cada uma dessas zonas, definidas pelas
potências sucessivas da base, corresponde ao número de
distintas mantissas positivas.
Portanto, em F (β, p, emin , emax ), a quantidade de números de
máquina entre potências sucessivas da base é dada por:
c = (β − 1)β p−1 .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Denomina-se região de underflow a região entre o menor
número de vírgula flutuante positivo e o zero e, simetricamente,
entre o maior número negativo e o zero.
Região de underflow: (−b, 0)
S
(0, b)
As regiões situadas além do maior e aquém do menor dos
números de vírgula flutuante constituem a região de overflow.
Região de overflow: (−∞, −B)
Análise e Computação Numérica
S
(B, ∞)
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Denomina-se região de underflow a região entre o menor
número de vírgula flutuante positivo e o zero e, simetricamente,
entre o maior número negativo e o zero.
Região de underflow: (−b, 0)
S
(0, b)
As regiões situadas além do maior e aquém do menor dos
números de vírgula flutuante constituem a região de overflow.
Região de overflow: (−∞, −B)
Análise e Computação Numérica
S
(B, ∞)
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Denomina-se região de underflow a região entre o menor
número de vírgula flutuante positivo e o zero e, simetricamente,
entre o maior número negativo e o zero.
Região de underflow: (−b, 0)
S
(0, b)
As regiões situadas além do maior e aquém do menor dos
números de vírgula flutuante constituem a região de overflow.
Região de overflow: (−∞, −B)
Análise e Computação Numérica
S
(B, ∞)
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Denomina-se região de underflow a região entre o menor
número de vírgula flutuante positivo e o zero e, simetricamente,
entre o maior número negativo e o zero.
Região de underflow: (−b, 0)
S
(0, b)
As regiões situadas além do maior e aquém do menor dos
números de vírgula flutuante constituem a região de overflow.
Região de overflow: (−∞, −B)
Análise e Computação Numérica
S
(B, ∞)
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Uma representação simplificada de um sistema de vírgula
flutuante F na recta real, destacando as regiões de underflow
e de overflow, é apresentada a seguir.
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Uma representação simplificada de um sistema de vírgula
flutuante F na recta real, destacando as regiões de underflow
e de overflow, é apresentada a seguir.
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Seja F = F (2, 3, −1, 2).
Como a base do sistema de numeração de vírgula flutuante é 2
e a precisão 3, as mantissas possíveis são 0,100, 0,101, 0,110
e 0,111.
Os expoentes da base são −1, 0, 1 e 2.
A cardinalidade de F é 33.
O maior número pertencente a F é (0,111 × 22 )2 .
O menor número de vírgula flutuante positivo é
(0,100 × 2−1 )2 = (0,25)10 .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Seja F = F (2, 3, −1, 2).
Como a base do sistema de numeração de vírgula flutuante é 2
e a precisão 3, as mantissas possíveis são 0,100, 0,101, 0,110
e 0,111.
Os expoentes da base são −1, 0, 1 e 2.
A cardinalidade de F é 33.
O maior número pertencente a F é (0,111 × 22 )2 .
O menor número de vírgula flutuante positivo é
(0,100 × 2−1 )2 = (0,25)10 .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Seja F = F (2, 3, −1, 2).
Como a base do sistema de numeração de vírgula flutuante é 2
e a precisão 3, as mantissas possíveis são 0,100, 0,101, 0,110
e 0,111.
Os expoentes da base são −1, 0, 1 e 2.
A cardinalidade de F é 33.
O maior número pertencente a F é (0,111 × 22 )2 .
O menor número de vírgula flutuante positivo é
(0,100 × 2−1 )2 = (0,25)10 .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Seja F = F (2, 3, −1, 2).
Como a base do sistema de numeração de vírgula flutuante é 2
e a precisão 3, as mantissas possíveis são 0,100, 0,101, 0,110
e 0,111.
Os expoentes da base são −1, 0, 1 e 2.
A cardinalidade de F é 33.
O maior número pertencente a F é (0,111 × 22 )2 .
O menor número de vírgula flutuante positivo é
(0,100 × 2−1 )2 = (0,25)10 .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Seja F = F (2, 3, −1, 2).
Como a base do sistema de numeração de vírgula flutuante é 2
e a precisão 3, as mantissas possíveis são 0,100, 0,101, 0,110
e 0,111.
Os expoentes da base são −1, 0, 1 e 2.
A cardinalidade de F é 33.
O maior número pertencente a F é (0,111 × 22 )2 .
O menor número de vírgula flutuante positivo é
(0,100 × 2−1 )2 = (0,25)10 .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Seja F = F (2, 3, −1, 2).
Como a base do sistema de numeração de vírgula flutuante é 2
e a precisão 3, as mantissas possíveis são 0,100, 0,101, 0,110
e 0,111.
Os expoentes da base são −1, 0, 1 e 2.
A cardinalidade de F é 33.
O maior número pertencente a F é (0,111 × 22 )2 .
O menor número de vírgula flutuante positivo é
(0,100 × 2−1 )2 = (0,25)10 .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Os valores decimais correspondentes aos números de vírgula
flutuante positivos aparecem no corpo do quadro a seguir.
e
0,100
−1
0
1
2
1/4
1/2
1
2
m
0,101 0,110 0,111
5/16
5/8
5/4
5/2
3/8
3/4
3/2
3
7/16
7/8
7/4
7/2
(0,100×2−1 )2 = (0,01)2 = 0·20 +0·2−1 +1·2−2 =
..
.
1
4
(0,111 × 22 )2 = (11,1)2 = 1 · 21 + 1 · 20 + 1 · 2−1 =
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
= (0,25)10
7
2
= (3,5)10
Sistemas de numeração de vírgula flutuante
Os valores decimais correspondentes aos números de vírgula
flutuante positivos aparecem no corpo do quadro a seguir.
e
0,100
−1
0
1
2
1/4
1/2
1
2
m
0,101 0,110 0,111
5/16
5/8
5/4
5/2
3/8
3/4
3/2
3
7/16
7/8
7/4
7/2
(0,100×2−1 )2 = (0,01)2 = 0·20 +0·2−1 +1·2−2 =
..
.
1
4
(0,111 × 22 )2 = (11,1)2 = 1 · 21 + 1 · 20 + 1 · 2−1 =
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
= (0,25)10
7
2
= (3,5)10
Sistemas de numeração de vírgula flutuante
Os valores decimais correspondentes aos números de vírgula
flutuante positivos aparecem no corpo do quadro a seguir.
e
0,100
−1
0
1
2
1/4
1/2
1
2
m
0,101 0,110 0,111
5/16
5/8
5/4
5/2
3/8
3/4
3/2
3
7/16
7/8
7/4
7/2
(0,100×2−1 )2 = (0,01)2 = 0·20 +0·2−1 +1·2−2 =
..
.
1
4
(0,111 × 22 )2 = (11,1)2 = 1 · 21 + 1 · 20 + 1 · 2−1 =
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
= (0,25)10
7
2
= (3,5)10
Sistemas de numeração de vírgula flutuante
Os valores decimais correspondentes aos números de vírgula
flutuante positivos aparecem no corpo do quadro a seguir.
e
0,100
−1
0
1
2
1/4
1/2
1
2
m
0,101 0,110 0,111
5/16
5/8
5/4
5/2
3/8
3/4
3/2
3
7/16
7/8
7/4
7/2
(0,100×2−1 )2 = (0,01)2 = 0·20 +0·2−1 +1·2−2 =
..
.
1
4
(0,111 × 22 )2 = (11,1)2 = 1 · 21 + 1 · 20 + 1 · 2−1 =
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
= (0,25)10
7
2
= (3,5)10
Sistemas de numeração de vírgula flutuante
Os valores decimais correspondentes aos números de vírgula
flutuante positivos aparecem no corpo do quadro a seguir.
e
0,100
−1
0
1
2
1/4
1/2
1
2
m
0,101 0,110 0,111
5/16
5/8
5/4
5/2
3/8
3/4
3/2
3
7/16
7/8
7/4
7/2
(0,100×2−1 )2 = (0,01)2 = 0·20 +0·2−1 +1·2−2 =
..
.
1
4
(0,111 × 22 )2 = (11,1)2 = 1 · 21 + 1 · 20 + 1 · 2−1 =
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
= (0,25)10
7
2
= (3,5)10
Sistemas de numeração de vírgula flutuante
Os valores decimais correspondentes aos números de vírgula
flutuante positivos aparecem no corpo do quadro a seguir.
e
0,100
−1
0
1
2
1/4
1/2
1
2
m
0,101 0,110 0,111
5/16
5/8
5/4
5/2
3/8
3/4
3/2
3
7/16
7/8
7/4
7/2
(0,100×2−1 )2 = (0,01)2 = 0·20 +0·2−1 +1·2−2 =
..
.
1
4
(0,111 × 22 )2 = (11,1)2 = 1 · 21 + 1 · 20 + 1 · 2−1 =
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
= (0,25)10
7
2
= (3,5)10
Sistemas de numeração de vírgula flutuante
Os valores decimais correspondentes aos números de vírgula
flutuante positivos aparecem no corpo do quadro a seguir.
e
0,100
−1
0
1
2
1/4
1/2
1
2
m
0,101 0,110 0,111
5/16
5/8
5/4
5/2
3/8
3/4
3/2
3
7/16
7/8
7/4
7/2
(0,100×2−1 )2 = (0,01)2 = 0·20 +0·2−1 +1·2−2 =
..
.
1
4
(0,111 × 22 )2 = (11,1)2 = 1 · 21 + 1 · 20 + 1 · 2−1 =
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
= (0,25)10
7
2
= (3,5)10
Sistemas de numeração de vírgula flutuante
Os valores decimais correspondentes aos números de vírgula
flutuante positivos aparecem no corpo do quadro a seguir.
e
0,100
−1
0
1
2
1/4
1/2
1
2
m
0,101 0,110 0,111
5/16
5/8
5/4
5/2
3/8
3/4
3/2
3
7/16
7/8
7/4
7/2
(0,100×2−1 )2 = (0,01)2 = 0·20 +0·2−1 +1·2−2 =
..
.
1
4
(0,111 × 22 )2 = (11,1)2 = 1 · 21 + 1 · 20 + 1 · 2−1 =
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
= (0,25)10
7
2
= (3,5)10
Sistemas de numeração de vírgula flutuante
A região de underflow na base 2 é
(−0,100 × 2−1 , 0,000 × 2−1 )
(0,000 × 2−1 , 0,100 × 2−1 ),
S
que, na base 10, corresponde a (− 14 , 0)
S
(0, 41 ).
Na base 2, a região de overflow é
(−∞, −0,111 × 22 )
S
(0,111 × 22 , ∞),
que corresponde, na base 10, a (−∞, − 27 )
Análise e Computação Numérica
S
( 72 , ∞).
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
A região de underflow na base 2 é
(−0,100 × 2−1 , 0,000 × 2−1 )
(0,000 × 2−1 , 0,100 × 2−1 ),
S
que, na base 10, corresponde a (− 14 , 0)
S
(0, 41 ).
Na base 2, a região de overflow é
(−∞, −0,111 × 22 )
S
(0,111 × 22 , ∞),
que corresponde, na base 10, a (−∞, − 27 )
Análise e Computação Numérica
S
( 72 , ∞).
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
A região de underflow na base 2 é
(−0,100 × 2−1 , 0,000 × 2−1 )
(0,000 × 2−1 , 0,100 × 2−1 ),
S
que, na base 10, corresponde a (− 14 , 0)
S
(0, 41 ).
Na base 2, a região de overflow é
(−∞, −0,111 × 22 )
S
(0,111 × 22 , ∞),
que corresponde, na base 10, a (−∞, − 27 )
Análise e Computação Numérica
S
( 72 , ∞).
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
A região de underflow na base 2 é
(−0,100 × 2−1 , 0,000 × 2−1 )
(0,000 × 2−1 , 0,100 × 2−1 ),
S
que, na base 10, corresponde a (− 14 , 0)
S
(0, 41 ).
Na base 2, a região de overflow é
(−∞, −0,111 × 22 )
S
(0,111 × 22 , ∞),
que corresponde, na base 10, a (−∞, − 27 )
Análise e Computação Numérica
S
( 72 , ∞).
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
As leis que valem para a aritmética em R não são válidas num
sistema de vírgula flutuante F .
Assim, sendo x ~ y , ~ ∈ {+, −, ·, /}, uma operação aritmética
em F , verifica-se que:
x
x
x
x
⊕y
y
y
y
6=
6=
6
=
6
=
x +y
x −y
x ·y
x/y
Como consequência, algumas das propriedades básicas de R,
como a associatividade e a distributividade, em geral não se
verificam em F .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
As leis que valem para a aritmética em R não são válidas num
sistema de vírgula flutuante F .
Assim, sendo x ~ y , ~ ∈ {+, −, ·, /}, uma operação aritmética
em F , verifica-se que:
x
x
x
x
⊕y
y
y
y
6=
6=
6
=
6
=
x +y
x −y
x ·y
x/y
Como consequência, algumas das propriedades básicas de R,
como a associatividade e a distributividade, em geral não se
verificam em F .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
As leis que valem para a aritmética em R não são válidas num
sistema de vírgula flutuante F .
Assim, sendo x ~ y , ~ ∈ {+, −, ·, /}, uma operação aritmética
em F , verifica-se que:
x
x
x
x
⊕y
y
y
y
6=
6=
6
=
6
=
x +y
x −y
x ·y
x/y
Como consequência, algumas das propriedades básicas de R,
como a associatividade e a distributividade, em geral não se
verificam em F .
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Seja F = F (2, 3, −1, 2).
Se x = 58 , y =
3
8
e z = 34 , então:
(x ⊕ y ) ⊕ z = (0,101 · 20 ) ⊕ (0,110 · 2−1 ) ⊕ (0,110 · 20 ) =
(0,101 ⊕ 0,011) ⊕ 0,110 = (1,11)2
x ⊕ (y ⊕ z) = 0,101 ⊕ (0,011 ⊕ 0,110) = 0,101 ⊕ 1,001
/
= 0,101 ⊕ 1,00 = 1,101
/ = (1,10)2
Logo, (x ⊕ y ) ⊕ z 6= x ⊕ (y ⊕ z).
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Seja F = F (2, 3, −1, 2).
Se x = 58 , y =
3
8
e z = 34 , então:
(x ⊕ y ) ⊕ z = (0,101 · 20 ) ⊕ (0,110 · 2−1 ) ⊕ (0,110 · 20 ) =
(0,101 ⊕ 0,011) ⊕ 0,110 = (1,11)2
x ⊕ (y ⊕ z) = 0,101 ⊕ (0,011 ⊕ 0,110) = 0,101 ⊕ 1,001
/
= 0,101 ⊕ 1,00 = 1,101
/ = (1,10)2
Logo, (x ⊕ y ) ⊕ z 6= x ⊕ (y ⊕ z).
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Seja F = F (2, 3, −1, 2).
Se x = 58 , y =
3
8
e z = 34 , então:
(x ⊕ y ) ⊕ z = (0,101 · 20 ) ⊕ (0,110 · 2−1 ) ⊕ (0,110 · 20 ) =
(0,101 ⊕ 0,011) ⊕ 0,110 = (1,11)2
x ⊕ (y ⊕ z) = 0,101 ⊕ (0,011 ⊕ 0,110) = 0,101 ⊕ 1,001
/
= 0,101 ⊕ 1,00 = 1,101
/ = (1,10)2
Logo, (x ⊕ y ) ⊕ z 6= x ⊕ (y ⊕ z).
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Seja F = F (2, 3, −1, 2).
Se x = 58 , y =
3
8
e z = 34 , então:
(x ⊕ y ) ⊕ z = (0,101 · 20 ) ⊕ (0,110 · 2−1 ) ⊕ (0,110 · 20 ) =
(0,101 ⊕ 0,011) ⊕ 0,110 = (1,11)2
x ⊕ (y ⊕ z) = 0,101 ⊕ (0,011 ⊕ 0,110) = 0,101 ⊕ 1,001
/
= 0,101 ⊕ 1,00 = 1,101
/ = (1,10)2
Logo, (x ⊕ y ) ⊕ z 6= x ⊕ (y ⊕ z).
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Exemplo. Seja F = F (2, 3, −1, 2).
Se x = 58 , y =
3
8
e z = 34 , então:
(x ⊕ y ) ⊕ z = (0,101 · 20 ) ⊕ (0,110 · 2−1 ) ⊕ (0,110 · 20 ) =
(0,101 ⊕ 0,011) ⊕ 0,110 = (1,11)2
x ⊕ (y ⊕ z) = 0,101 ⊕ (0,011 ⊕ 0,110) = 0,101 ⊕ 1,001
/
= 0,101 ⊕ 1,00 = 1,101
/ = (1,10)2
Logo, (x ⊕ y ) ⊕ z 6= x ⊕ (y ⊕ z).
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Se x = 78 , y =
5
4
e z = 38 , tem-se:
x (y ⊕ z) = (0,111 · 20 ) (0,101 · 21 ) ⊕ (0,110 · 2−1 ) =
0,111 (1,01 ⊕ 0,011) = 0,111 1,101
/
= 0,111 1,10 = 1,010
/1
/ = (1,01)2
(x y ) ⊕ (x z) = (0,111 1,01) ⊕ (0,111 0,011) = 1,000
/1
/1
/
⊕ 0,01010
/1
/ = 1,00 ⊕ 0,0101 = 1,010
/1
/ = (1,10)2
Logo, x (y ⊕ z) 6= (x y ) ⊕ (x z).
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Se x = 78 , y =
5
4
e z = 38 , tem-se:
x (y ⊕ z) = (0,111 · 20 ) (0,101 · 21 ) ⊕ (0,110 · 2−1 ) =
0,111 (1,01 ⊕ 0,011) = 0,111 1,101
/
= 0,111 1,10 = 1,010
/1
/ = (1,01)2
(x y ) ⊕ (x z) = (0,111 1,01) ⊕ (0,111 0,011) = 1,000
/1
/1
/
⊕ 0,01010
/1
/ = 1,00 ⊕ 0,0101 = 1,010
/1
/ = (1,10)2
Logo, x (y ⊕ z) 6= (x y ) ⊕ (x z).
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Se x = 78 , y =
5
4
e z = 38 , tem-se:
x (y ⊕ z) = (0,111 · 20 ) (0,101 · 21 ) ⊕ (0,110 · 2−1 ) =
0,111 (1,01 ⊕ 0,011) = 0,111 1,101
/
= 0,111 1,10 = 1,010
/1
/ = (1,01)2
(x y ) ⊕ (x z) = (0,111 1,01) ⊕ (0,111 0,011) = 1,000
/1
/1
/
⊕ 0,01010
/1
/ = 1,00 ⊕ 0,0101 = 1,010
/1
/ = (1,10)2
Logo, x (y ⊕ z) 6= (x y ) ⊕ (x z).
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Sistemas de numeração de vírgula flutuante
Se x = 78 , y =
5
4
e z = 38 , tem-se:
x (y ⊕ z) = (0,111 · 20 ) (0,101 · 21 ) ⊕ (0,110 · 2−1 ) =
0,111 (1,01 ⊕ 0,011) = 0,111 1,101
/
= 0,111 1,10 = 1,010
/1
/ = (1,01)2
(x y ) ⊕ (x z) = (0,111 1,01) ⊕ (0,111 0,011) = 1,000
/1
/1
/
⊕ 0,01010
/1
/ = 1,00 ⊕ 0,0101 = 1,010
/1
/ = (1,10)2
Logo, x (y ⊕ z) 6= (x y ) ⊕ (x z).
Análise e Computação Numérica
Sistemas de Vírgula Flutuante
Download