Métodos Numéricos Turma CI-202-X Josiney de Souza ... · e expoente de β, ... Variável ainda em...
Transcript of Métodos Numéricos Turma CI-202-X Josiney de Souza ... · e expoente de β, ... Variável ainda em...
Agenda do Dia – Aula 3 (10/08/15)
Aritmética de ponto flutuante Representação de ponto flutuante Normalização
Binária Decimal
Situações durante a representação
Ponto Fixo X Ponto Flutuante
Em máquinas, usamos duas formas de representar números: Ponto fixo: para valores inteiros Ponto flutuante: para valores reais
Em uma máquina de calcular ou computador digital, representa-se um número real com a aritmética de ponto flutuante
Representação de Ponto Flutuante
β Base onde máquina opera→ → números inteiros contidos no intervalo 0 ≤
≤ (β-1); d ≠ 0 e expoente de β, assume valores I ≤ e ≤ S→ I, S limites inferior e superior para variação →
do expoente
x=±[d 1
β1 +d 2
β2 +d 3
β3 +...+d t
βt ]∗βe
di
di
Representação de Ponto Flutuante
→ mantissa. Parte do número que representa seus dígitos significativos
t número de dígitos significativos dos →sistema de representação, comumente chamado de precisão da máquina
x=±[d 1
β1 +d 2
β2 +d 3
β3 +...+d t
βt ]∗βe
[ d1
β1 +d2
β2 +d3
β3 +...+d t
βt ]
Representação de Ponto Flutuante
Representação 2: Representação 3: F (β, t, I, S)
x=±[d 1
β1 +d 2
β2 +d 3
β3 +...+d t
βt ]∗βe
±[.d1d2d3 ...d t ]∗βe
Representação de Ponto Flutuante
Exemplo 1: No sistema decimal, β = 10, tem-se:
Deve-se normalizar os números
0,12510=(1∗10−1+2∗10−2+5∗10−3)∗100
3,141510=(3∗10−1+1∗10−2+4∗10−3+1∗10−4+5∗10−5)∗101
Normalização Decimal
Normalização: Também chamada de notação científica Utilizada nas operações com ponto flutuante A mantissa é escrita entre 0 e 1 Exemplos: 3,1415 10,053
Normalização Decimal
Normalização: Também chamada de notação científica Utilizada nas operações com ponto flutuante A mantissa é escrita entre 0 e 1 Exemplos: 3,1415 10,053
3,1415 = 0,31415 * 10
10,053 = 1,0053 * 10¹ = 0,10053 * 10²
Normalização Binária
Normalização em base binária: Segue o mesmo raciocínio da base 10 Primeiro, converter o número decimal em
binário Exemplos: 10 4
Normalização Binária
Normalização em base binária: Segue o mesmo raciocínio da base 10 Primeiro, converter o número decimal em
binário Exemplos: 10 4
10 = 1010₂ = 101,0 * 2¹ = 10,10 * 2² = 1,010 * 2³ = 0,1010 * 2⁴
4 = 100₂ = 10,0 * 2¹ = 1,00 * 2² = 0,100 * 2³
Normalização Binária
Exercício: Determinar a representação do número 25 em uma máquina de calcular cujo sistema de representação utilizado tenha Base: β = 2 Precisão (dígitos significativos): t = 10 Menor valor de expoente: I = -15 Maior valor de expoente: S = 15
Normalização Binária
Exercício: Determinar a representação do número 25 em uma máquina F(2, 10, -15, 15) São necessários 16 bits nessa máquina:
10 bits para precisão (bits 1-10) 4 para expoente (bits 12-15) 1 para sinal da precisão (bit 0) 1 para sinal do expoente (bit 11)
0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Normalização Binária
Exercício: Determinar a representação do número 25 em uma máquina F(2, 10, -15, 15) Maior valor (32736):
Menor valor (-32736):
1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Normalização Binária
Exercício: Determinar a representação do número 25 em uma máquina F(2, 10, -15, 15) Ainda, o valor de zero seria:
Próximo número positivo (0,000015259):
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Normalização Binária
Exercício: Determinar a representação do número 25 em uma máquina F(2, 10, -15, 15) Segundo número positivo (0,000015289):
0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Normalização Binária
Através do exemplo, observa-se: Os números representáveis são um
subconjunto dos números reais Subconjunto representável está dentro de um
intervalo
Situações Durante as Representações
Considerar: F(10, 3, -5, 5) Menor número em valor absoluto:
Maior número em valor absoluto:M = 0,999 * 10⁵ = 99900
Conjunto G = { x є R / m ≤ |x| ≤ M }
Várias situações podem ocorrer...
m=0,100∗10−5=10−6=0,000001
Situações Durante as Representações
Considerar: F(10, 3, -5, 5) Conjunto G = { x є R / m ≤ |x| ≤ M }
1: x є G
2: |x| < m
3: |x| > M
Situações Durante as Representações
1: x є G X está no conjunto representável Exemplo: 235,89 = 0,23589 * 10³ Número tem 5 dígitos na mantissa Máquina consegue representar 0,235 * 10³ e
0,236 * 10³ 0,235 * 10³ representação por truncamento→ 0,236 * 10³ representação por arredondamento→
Situações Durante as Representações
2: |x| < m X está abaixo do limite inferior representável Exemplo: Número não pode ser representado Expoente é menor que -5 Máquina acusa Underflow
0,345∗10−7
Situações Durante as Representações
3: |x| > M X está acima do limite superior representável Exemplo: 0,875 * 10⁹ Número não pode ser representado Expoente é maior que 5 Máquina acusa Overflow
Situações Durante as Representações
Algumas linguagens de programação permitem declarar variáveis de precisão dupla
Variável ainda em aritmética de ponto flutuante, mas com aproximadamente o dobro de dígitos disponíveis na mantissa
Nesse caso, o tempo de execução e requerimento de memória aumentam de forma significativa
Em C/C++: float 32 bits; double 64 bits→ → Em Pascal: real, double 32 bits; extended 64 → →
bits