O padrão IEEE 754 define a precisão dos números de ponto flutuante.
a) Qual a diferença entre ponto flutuante de 32 bits (float) e 64 bits (double)?
b) Como o épsilon de máquina se relaciona com a precisão dessas representações?
a) Qual a diferença entre ponto flutuante de 32 bits (float) e 64 bits (double)?
b) Como o épsilon de máquina se relaciona com a precisão dessas representações?
Passo 1
Beleza, vamos lá! O enunciado quer que a gente entenda o padrão IEEE 754 para ponto flutuante, mais especificamente:
- a) Qual a diferença de representação entre float (32 bits) e double (64 bits)?
- b) Como o epsilon de máquina (εₘ) se encaixa nessa história de precisão?
O conteúdo envolvido é representação de números em ponto flutuante (IEEE 754) e definição de epsilon de máquina. Para resolver, precisamos lembrar como o padrão divide os bits (sinal, expoente e mantissa) e saber que εₘ mede o “passo” mínimo entre 1 e o próximo número representável.
Passo 2
Vamos destrinchar a estrutura IEEE 754. Tanto float quanto double têm três partes:
- bit de sinal (S)
- bits do expoente (E)
- bits da mantissa/fracionária (M)
-
No float (32 bits):
• S = 1 bit
• E = 8 bits (com bias 127)
• M = 23 bits -
No double (64 bits):
• S = 1 bit
• E = 11 bits (com bias 1023)
• M = 52 bits
A mantissa (M) dita quantos dígitos binários de precisão temos: float ~23 bits ⇒ ~7 dígitos decimais de precisão; double ~52 bits ⇒ ~15–16 dígitos decimais.
Passo 3
Epsilon de máquina, εₘ, é o menor valor que, somado a 1.0, gera algo diferente de 1.0 no formato. Em IEEE 754 ele vale basicamente
, onde
é o número de bits da mantissa:
- Para float:
- Para double:
Isso significa que a resolução mínima (o “passinho”) entre números em torno de 1 é dado por esses valores. Quanto menor εₘ, maior a precisão relativa.
Resposta
a) Um float usa 1 bit de sinal, 8 bits de expoente e 23 bits de mantissa (32 bits no total), garantindo ~7 dígitos decimais; um double usa 1 bit de sinal, 11 bits de expoente e 52 bits de mantissa (64 bits), garantindo ~15–16 dígitos.
b) O epsilon de máquina é no float e
no double, indicando o menor incremento representável em torno de 1. Quanto menor o εₘ, maior a precisão do formato.
b) O epsilon de máquina é