Ainda sobre o computador do exercício anterior:
Qual o maior número menor que 20, nele representável?

Passo 1

Beleza, aqui a ideia é: “Num computador que usa ponto flutuante padrão IEEE 754 de precisão simples (32 bits), qual é o maior número que ele pode representar e que ainda seja menor que 20?”
Matéria: representação em ponto flutuante.
O que precisamos:
  1. Saber como o 20 é codificado em IEEE 754 (sinal, expoente com bias, mantissa).
  2. Entender o “espaçamento” (ulp) na vizinhança de 20.
  3. Subtrair esse espaçamento pra achar o maior valor abaixo de 20.

Passo 2

Antes de tudo, lembra do formato IEEE 754 simples (32 bits):
  • 1 bit de sinal (0 = positivo).
  • 8 bits de expoente, com bias = 127.
  • 23 bits de fração (mantissa), mas a mantissa real é 1.fração (porque é “normalizada”).
Pra representar 20 em decimal:
20₁₀ = 10100₂ = 1.01₂ × 2⁴
Logo:
– Sinal = 0
– Expoente = 4 + 127 = 131 → em binário: 10000011
– Mantissa (a parte após o “1.”) = .01 0000…0 (23 bits)

Passo 3

Agora precisamos achar o “ulp” (unit in last place), ou seja, o menor passo entre dois floats próximos de 20.
Fórmula geral do espaçamento numa faixa 2ᵉ ≤ |x| < 2ᵉ⁺¹ é
ulp = 2ᵉ⁻²³ (porque temos 23 bits na fração)
Aqui e = 4, então
ulp = 2^(4 − 23) = 2^(−19)
Em decimal
2^(−19) ≈ 1,9073486328125 × 10⁻⁶

Passo 4

Para achar o maior número < 20, a gente pega exatamente 20 e subtrai esse ulp:
20 – 2^(−19)
Em LaTeX:
máximo abaixo de 20 = 20 - 2^-19 á

Resposta

O maior número representável e ainda menor que 20 (em IEEE 754 simples) é
20 - 2^-19 approx 19.99999809265137

Exercícios relacionados