Métodos Numéricos Turma CI-202-X Josiney de Souza josineys@inf.ufpr.br
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 x=±[ d 1 β +d 2 1 β +d 3 2 β +...+d ] t 3 β t βe β Base onde máquina opera d i d i 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
Representação de Ponto Flutuante x=±[ d 1 β +d 2 1 β +d 3 2 β +...+d ] t 3 β t βe [ d 1 mantissa. Parte β +d 2 1 β +d 3 2 β +...+d ] t 3 β t 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
Representação de Ponto Flutuante x=±[ d 1 β +d 2 1 β +d 3 2 β +...+d ] t 3 β t βe Representação 2: ±[. d 1 d 2 d 3...d t ] β e Representação 3: F (β, t, I, S)
Representação de Ponto Flutuante Exemplo 1: No sistema decimal, β = 10, tem-se: 0,125 10 =(1 10 1 +2 10 2 +5 10 3 ) 10 0 3,1415 10 =(3 10 1 +1 10 2 +4 10 3 +1 10 4 +5 10 5 ) 10 1 Deve-se normalizar os números
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): 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 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
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: 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 Próximo número positivo (0,000015259): 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: m=0,100 10 5 =10 6 =0,000001 Maior número em valor absoluto: M = 0,999 * 10⁵ = 99900 Conjunto G = { x є R / m x M } Várias situações podem ocorrer...
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: 0,345 10 7 Número não pode ser representado Expoente é menor que -5 Máquina acusa Underflow
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
Próxima Aula Situações durante a representação de números Conceitos de erros: Absolutos Relativos De Arredondamento De Truncamento Propagação de erros