Seja o número real x um número real dado baixo na sua representação decimal. Escreva sua representação em ponto flutuante, com cinco dígitos, na base 2. Neste exemplo considere os limites do expoente tão grande ou pequeno quanto se queira.
x=e^2

Passo 1

Beleza, a questão é: “A gente tem o número real (que é cerca de 7,389056…) e precisa escrever ele em ponto flutuante binário, com 5 dígitos na mantissa, assumindo expoentes ilimitados.”
Conteúdo: representação em ponto flutuante (base 2), normalização e arredondamento.
O que vamos precisar:
  1. Aproximar em decimal.
  2. Converter essa parte inteira e a parte fracionária para binário.
  3. Normalizar (ficar com 1.xxxxx × 2^e).
  4. Manter só 5 dígitos significativos na mantissa e arredondar.

Passo 2

Primeiro, calcula e approx 2,718281828Longrightarrow e^2 approx 7,389056098 . A gente já sabe que
Ou seja: .

Passo 3

Agora converte a parte inteira e a parte fracionária pra binário:
  • Parte inteira:
    7 em decimal é 0,38905610approx 0110001ldots2 .
  • Parte fracionária: xapprox 7,389056;=;111.0110001ldots2 . Aí multiplicamos repetidas vezes por 2 e anotamos o “inteiro” de cada passo:
    1. → bit 0
    2. → bit 1 (resto 0,556224)
    3. → bit 1 (resto 0,112448)
    4. → bit 0
    5. → bit 0
    6. → bit 0
    7. → bit 1 (resto 0,799168)

      Juntando, a fração vira aproximadamente
Então

Passo 4

Agora normaliza em forma 111.01100012 = 1.1101100012 times 2^2 .
Temos . Para ficar com um só “1” antes do ponto, movemos o ponto 2 casas à esquerda:

Passo 5

A gente quer só 5 dígitos na mantissa (contando o “1” antes do ponto). Ou seja, mantemos “1.xxxx” (4 bits depois do ponto) e arredondamos pelo quinto bit (“guard”).
Mantissa sem arredondar:
1.1101 1000…
bits: 1 . 1 1 0 1 | 1 (guard) 0 …
Os primeiros 5 bits são 1.1101 e o guard bit é 1, então a gente arredonda somando 0.0001₂:
1.11012 + 0.00012 = 1.11102
O expoente continua sendo 2.

Resposta

x = e^2 approx (+1)times1.11102 times 2^2

Exercícios relacionados