Pontos Fixo E Flutuantes
Artigos Científicos: Pontos Fixo E Flutuantes. Pesquise 862.000+ trabalhos acadêmicosPor: sess • 23/3/2015 • 1.448 Palavras (6 Páginas) • 662 Visualizações
onto flutuante (do inglês floating point) ou vírgula flutuante[1] é um formato de representação digital de números reais, que é usada nos computadores.
Ao falar em números reais a visualização vinda à cabeça é:
Representação de um número fracionário.
No entanto, essa representação custa caro, em termos de processamento e armazenamento, ao computador havendo a necessidade de utilizar uma outra maneira que favoreça tais tarefas. Para trabalhar com a parte fracionária de forma satisfatória, usa-se a representação por pontos flutuantes.
Essa representação baseia-se no deslocamento da virgula de forma que se obtenha um número menor ou próximo de 1. Esse deslocamento é feito por meio de notação científica. Esclarecendo: o número 25,456 em notação corresponde ao 0,25456 x 102.
O exemplo acima tinha como base a decimal, no entanto o computador trabalha com a base 2 (binários – 0 e 1). Então um número binário 11,011 em notação corresponde ao 0,11011 x 22. Esse processo de transcrever um número em notação científica recebe o nome de normalização, portanto 0,11011 x 22 está normalizado.
De forma geral, representa-se um ponto flutuante da seguinte forma:
+- M X B+-e
Onde:
M é a mantissa (parte fracionária)
B é a base
e é o expoente
Esquematicamente tem-se [2] :
Desta forma é possível cobrir um largo espectro de números, maximizando o número de bits significativos e consequentemente a precisão da aproximação. Esta forma de representação foi criada por Konrad Zuse para os seus computadores Z1 e Z3.
O número de bits alocados para representar a mantissa e o expoente depende da norma utilizada.
Para obter o número em ponto flutuante converte-se o número para a base na qual será armazenado, normaliza-o e por fim separa-se mantissa, expoente e sinais.
Exemplo[3] :
Assumindo:
1 bit para o sinal do número
1 bit para o sinal do expoente
4 bits para o expoente
10 bits para a mantissa
Represente o número 5,7510 em ponto flutuante. O número em questão encontra-se na base 10, portanto é preciso convertê-lo para binário (base 2), base entendida pelo computador. 5,7510 => 101,112
Normalizando tem-se: 0,10111 x 23
Separando sinais, mantissa e expoente tem-se:
Sinal do número: (+) 0
Sinal do expoente: (+) 0
Expoente: 011 (3)
Mantissa: 10111
Portanto tem-se: 00001100000101112
A maioria dos sistemas que operam com ponto flutuante utilizam representações definidas na norma IEEE 754.
O padrão IEEE para aritmética de ponto flutuante (IEEE 754) é o padrão mais amplamente utilizado para o cálculo de ponto flutuante, e é seguido por muitos CPU e melhorias FPU. A norma define formatos para representar números de ponto flutuante (incluindo zero) e os valores não normalizados, bem como os valores especiais infinito e NaN, com um conjunto de operações de ponto flutuante que trabalham com esses valores. Também especifica quatro modos de arredondamento e cinco exceções (inclusive quando essas exceções ocorrem é o que acontece nesses momentos). A Norma IEEE 754-2008 define os formatos adequados para representar números em ponto flutuante de precisão simples (32 bits) e de precisão dupla (64 bits). O título completo da norma é o padrão IEEE para Aritmética Binária de Ponto Flutuante (ANSI / IEEE Std 754-1985), e também é conhecido pelo IEC 60559:1989, Binary floating-point arithmetic for microprocessor systems (originalmente o número de referência era IEC 559:1989).[4] [5]
O formato de ponto flutuante de precisão simples (32 bits) consiste num bit de sinal (s), 8 bits de expoente (e) e uma mantissa de 23 bits (m). O bit de sinal (s) é 0 (zero) para números positivos e 1 para números negativos. O campo de expoente (e) corresponde à soma de 127 com o expoente de base 2 do número representado. O campo de mantissa (m) corresponde à parte fracionária da mantissa do número representado. Considera-se sempre a mantissa normalizada entre 1 e 2. Desta forma a sua parte inteira é sempre apenas um bit igual a 1 (um) que não é necessário representar.
v = S × M × 2E
Onde:
S = 1 − 2 × s
M = 1.m = 1 + m × 2−23
E = e − 127
Índice
1 Problemas com o uso de ponto flutuante
2 Propriedades de aritmética de ponto flutuante
3 Exemplos
3.1 Valores Especiais
4 Implementação em Linguagens de Programação
5 Referências
Problemas com o uso de ponto flutuante
Em geral, este tipo de números se comporta muito semelhante aos números reais. No entanto, isso muitas vezes leva os programadores a desconsiderar a importância da análise numérica adequada sobre os resultados obtidos. Há muitas inconsistências entre o comportamento dos números de ponto flutuante em base 2(binário) e que os números reais, mesmo em casos muito simples (como a fração que 0,1 não pode ser representado de maneira exata por qualquer binária de ponto flutuante). As principais causas de erro no cálculo de ponto flutuante são:
arredondamento(por exemplo, 0,1);
arredondamento das operações aritméticas(por exemplo,2/3= 0,666667);
absorção(por exemplo, 1 + 1 = 1 x 1015 x 1015);
cancelamento(por exemplo, a subtração de dois números
...