Representação de números de ponto de flutuação padrão IEEE
A representação de números grandes em formato binário de computador requer um padrão para garantir que não haja grandes discrepâncias nos cálculos. Assim, o IEEE (Institute of Electrical and Electronics Engineers) desenvolveu o Padrão IEEE para aritmética de ponto de flutuação (IEEE 754).
Há três componentes no IEEE 754:
- A base: 0 representa um número positivo e 1 representa um número negativo.
- O expoente de polaridade: o expoente é usado para representar expoentes positivos e negativos. Portanto, é necessário adicionar uma polaridade ao expoente real para obter o expoente armazenado.
- A mantissa: também conhecida como coeficiente, representa os bits de precisão do número.
Usando esses componentes, o IEEE 754 representa os números de ponto de flutuação de duas maneiras: formato de precisão simples e formato de precisão dupla. Embora ainda existam várias maneiras de representar números de ponto de flutuação, o IEEE 754 é o mais comum porque geralmente é a representação mais eficiente de valores numéricos.
O que é o formato de ponto de flutuação de precisão simples?
O formato de ponto de flutuação de precisão simples usa 32 bits de memória do computador e pode representar uma ampla variedade de valores numéricos. Normalmente chamado de FP32, esse formato é mais bem utilizado para cálculos que não sofrerão uma leve aproximação.
O que é o formato de ponto de flutuação de precisão dupla?
O formato de ponto de flutuação de precisão dupla, por outro lado, ocupa 64 bits da memória do computador e é muito mais preciso que o formato de precisão simples. Esse formato é geralmente chamado de FP64 e é usado para representar valores que exigem um intervalo maior ou um cálculo mais preciso.
Embora a precisão dupla permita maior exatidão, ela também exige mais recursos computacionais, armazenamento de memória e transferência de dados. O custo de usar esse formato nem sempre faz sentido para todos os cálculos.
A diferença entre precisão simples e dupla
A maneira mais simples de distinguir entre computação de precisão simples e dupla é observar quantos bits representam o número de ponto de flutuação. Para precisão simples, 32 bits são usados para representar o número de ponto de flutuação. Para precisão dupla, 64 bits são usados para representar o número de ponto de flutuação.
Veja o número de Euler (e), por exemplo. Estes são os primeiros 50 dígitos decimais de e: 2.7182818284590452353602874713526624977572470936999.
Veja o número de Euler em binário, convertido em precisão única:
01000000001011011111100001010100
Este é o número de Euler em binário, convertido em precisão dupla:
010000000000010110111111 0000101010001011000101000101011101101001
O primeiro número representa a base. O próximo conjunto de números (oito para precisão simples e onze para precisão dupla) representa o expoente polarizado. O conjunto final de números (23 para precisão simples e 52 para precisão dupla) representa a mantissa.
Gráfico de comparação: Precisão simples versus Precisão dupla
|
Precisão simples
|
Precisão dupla
|
Visão Geral
|
Usa 32 bits de memória para representar um valor numérico, com um dos bits representando o sinal da mantissa
|
Usa 64 bits de memória para representar um valor numérico, com um dos bits representando o sinal da mantissa
|
Expoente polariza
|
8 bits usados para o expoente
|
11 bits usados para o expoente
|
Mantissa
|
Usa 23 bits para a mantissa (para representar a parte fracionária)
|
Usa 52 bits para a mantissa (para representar a parte fracionária)
|
Aplicação no mundo real
|
Geralmente usado em jogos ou em qualquer programa que exija uma representação mais ampla sem um alto nível de precisão
|
Geralmente usado para cálculos científicos e programas complexos que exigem um alto nível de precisão
|