Rômulo C Ar
Normas de cálculo com números deponto flutuante e suas formas de armazenamento, de acordo com as recomendações do padrão IEEE 754.
À seguir, exemplos de cálculos nas 4 operações aritméticas básicas:
ADIÇÃO E SUBTRAÇÃO
Seja F(10, 4, –50, 49), δ = 50, com um dígito de guarda.
Se X = 436.7 e Y = 7.595 obter a soma ( X+Y).
Obs.: Para todas operações, faremos uma análise da precisão do resultado obtido, através dos erros absoluto e relativo.
X = 0 | 5 3 | 4 3 6 7
Y = 0 | 5 1 | 7 5 9 5
1) e1 – e2 = 53 –51 = 2 (deslocamento de dois dígitos do menor, no caso Y)
Y = 0 | 5 1 | 7 5 9 5 ≡ Y = 0 | 5 3 | 0 0 7 5 9
2) Expoente do resultado: e = 5 3
3) Adição das mantissas: 4 3 6 7 (0) + 0 0 7 5 (9) = 4 4 4 2 (9) , onde o valor entre parênteses é o dígito de guarda.
4) Normaliza o resultado: Não há necessidade, pois d1 = 4 ≠ 0.
5) Arredonda: 4 4 4 2 (9) f => 4 4 4 3
6) Verifica underflow/overflow: e – 50 = 53 − 50 = 3 < 49. Não há.
Resultado:
X + Y = 0 | 5 3 | 4 4 4 3 ou X + Y = 0.4443 * 10 (elevado à 53-50) = 444.3
Análise do resultado:
Erro absoluto = | 444.295 – 444.3 | = 0.01
Erro Relativo = 0.01 / 444.295 = 1.13 x 10 (elevado à −5)
MULTIPLICAÇÃO
Para os mesmos dados do exemplo anterior obter o produto ( X * Y ).
1) Expoente: e = 53 + 51 = 104
2) Multiplicação das mantissas: (4 3 6 7) * (7 5 9 5) = (3 3 1 6 7 3 6 5), considerando quatro dígitos de guarda.
3) Normalizar o valor do resultado. Ajustar expoente (e−δ) = 104 – 50 = 54.
4) Arredondar o valor do resultado: (3 3 1 6 7 3 6 5) (3 3 1 7).
5) Verifica underflow/overflow: e – 50 = 54 − 50 = 4 < 49. Não há.
Resultado:
X * Y = 0 | 5 4 | 3 3 1 7 ou X * Y = 0.3317 * 10 (elevado à 54–50) = 3317
Análise do resultado:
Erro absoluto = | 3316.7365 – 3317 | = 0.2635
Erro Relativo = 0.2635 / 3316.7365 = 7.9445 x 10 (elevado à −5) <= (Obs.: mesma precisão da adição.)
DIVISÃO
Para os mesmos dados dos exemplos anteriores obter a divisão ( X / Y ).
1) Expoente: e = 53 – 51 = 2
2) Divisão das mantissas: (4 3 6 7) * (7 5 9 5) = (5 7 4 9 8 3 5 4), considerando quatro dígitos de guarda.
3) Normalizar o valor do resultado. Ajustar expoente (e+δ) = 2 + 50 = 52.
4) Arredondar o valor do resultado: (5 7 4 9 8 3 5 4) (5 7 5 0).
5) Verifica underflow/overflow: e –50 = 52−50 = 2 < 49. Não há.
Resultado:
X / Y = 0 | 5 2 | 5 7 5 0 ou X / Y = 0.5750 * 10 (elevado à 52–50) = 57.50
Análise do resultado:
Erro absoluto = | 57.49835418 – 57.50 | = 0.001645819
Erro Relativo = 0.001645819 / 57.49835418 = 2.8623 x 10 (elevado à −5)
Rômulo C Ar
P.S. - A fonte de consulta destes cálculos extraí deste trabalho acadêmico:
Abçs
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar