Explique por que números como 0,1 não podem ser representados exatamente no formato IEEE 754.

Passo 1

Beleza, o enunciado pede pra explicar por que números como 0,1 (decimal) não cabem direitinho no formato IEEE 754. O assunto aqui é representação de ponto flutuante (floating point) em binário, e vamos precisar entender como a mantissa e o expoente funcionam, além de como converter frações decimais em binário.

Passo 2

Antes de mais nada, lembra que no IEEE 754 cada número é guardado como
.
Isso significa que a mantissa é uma sequência finita de bits depois do ponto, e o expoente também tem um tamanho limitado. Então só dá pra guardar um número com precisão limitada em binário.

Passo 3

Agora, para ver por que 0,1 é chato, basta converter 0,1 (decimal) pra binário. A conversão de frações faz assim: multiplica por 2, pega a parte inteira, repete com a parte fracionária.
  • 0,1×2 = 0,2 → bit 0
  • 0,2×2 = 0,4 → bit 0
  • 0,4×2 = 0,8 → bit 0
  • 0,8×2 = 1,6 → bit 1
  • 0,6×2 = 1,2 → bit 1
  • 0,2×2 = 0,4 → bit 0
    …e você vê que a partir de 0,2 volta tudo igual, gerando o ciclo 0011 repetido.
    No final, 0,1₁₀ = 0.0001100110011…₂ (os “0011” se repetem para sempre).

Passo 4

Como a mantissa em IEEE 754 tem tamanho fixo (por exemplo 23 bits em single precision ou 52 em double), você não pode guardar essa repetição infinita. Você só armazena os primeiros N bits de 00011001100… e fecha ali. O resto dos “0011” que sobraria é cortado (truncamento) ou causa arredondamento. Resultado: o bit pattern final é uma aproximação.

Passo 5

Ou seja, 0,1 decimal vira algo como
0.110 ;approx; 1.100110011001100110011012 times 2^-4
se for single precision, e nunca exatamente 0.00011001100…₂. Isso explica porque, ao fazer operações com 0.1 no computador, você às vezes vê 0.10000000149011612 ou 0.09999999999999998 — é o melhor chute possível com a mantissa limitada.

Resposta

Números como 0,1 não cabem exatamente em IEEE 754 porque sua representação binária é infinita e periódica (0.00011001100…₂), enquanto o formato IEEE 754 usa mantissa de tamanho fixo, obrigando a truncar ou arredondar essa sequência infinita.

Exercícios relacionados