Considere uma máquina cuja representação de números é dada por um sistema de ponto flutuante F(2,8,-5,5), isto é, base binária, 8 dígitos na mantissa e expoente no intervalo [-5,5].
a) Represente os números x_{1}=9.3125; x_{2}=16.3 e x_{3}=126.5 nessa máquina
b) Os números x_{1}, x_{2} e x_{3} podem ser representados exatamente no sistema? Justifique sua resposta para cada número.

Passo 1

O enunciado dá uma máquina de ponto flutuante F(2,8,-5,5). Isso significa:
  • base 2;
  • mantissa com t=8 dígitos binários (isto é, o formato normalizado tem um dígito 1 seguido de 7 bits fracionários: 1.d_1d_2\ldots d_7);
  • expoente inteiro E com -5 \le E \le 5.
Os números a representar são:
  • x_{1}=9{,}3125,
  • x_{2}=16{,}3,
  • x_{3}=126{,}5.
O enunciado pede:
a) representar cada número nessa máquina (ou seja, escrever a forma normalizada com t=8 dígitos na mantissa e expoente dentro do intervalo);
b) dizer se cada um pode ser representado exatamente nessa máquina e justificar para cada número.

Passo 2

Como a máquina é normalizada e tem t=8, qualquer número (não nulo) representável tem a forma
\pm (1.d_1d_2\ldots d_7)_2 \times 2^{E},
onde cada d_i\in\{0,1\} e -5\le E\le5. Explicando:
  • o dígito inicial é 1 (normalização) — portanto a mantissa tem 1 mais exatamente 7 bits fracionários;
  • se a expansão binária de um número termina (tem número finito de bits) com no máximo 7 bits fracionários depois do 1 quando normalizado e o expoente E caber no intervalo, o número é representável exatamente;
  • se a expansão binária da parte fracionária for periódica/infinita ou exigir mais que 7 bits fracionários, teremos aproximação (chop/round) pelo truncamento/arreondamento aos 7 bits fracionários;
  • se o expoente necessário for >5 ou < -5, ocorre overflow/underflow e o número não é representável nesse formato normalizado.
Para converter um decimal em binário: separar parte inteira e parte fracionária; converter a parte inteira por divisões sucessivas por 2 (ou reconhecer potências de 2); converter a parte fracionária multiplicando por 2 repetidamente (cada produto dá o próximo bit). Vou aplicar isso passo a passo a cada x_i.

Passo 3

  1. Parte inteira: 9_{10}=1001_2 (porque 9=8+1=2^3+2^0).
  2. Parte fracionária: 0{,}3125. Multiplicando por 2:
    • 0{,}3125\cdot2=0{,}625\Rightarrow bit 0 (resto 0{,}625);
    • 0{,}625\cdot2=1{,}25\Rightarrow bit 1 (resto 0{,}25);
    • 0{,}25\cdot2=0{,}5\Rightarrow bit 0 (resto 0{,}5);
    • 0{,}5\cdot2=1{,}0\Rightarrow bit 1 (resto 0, termina).
      Assim a parte fracionária é 0{,}0101_2.
  3. Juntando: 9{,}3125 = 1001{,}0101_2.
  4. Normalizar: mover o ponto 3 casas à esquerda dá
1001{,}0101_2 = 1{.}0010101_2 \times 2^{3}.
  1. Mantissa com t=8 dígitos significa manter 1 mais 7 bits fracionários. Aqui já temos exatamente 1.{0010101}_2 (o número tem exatamente 7 bits fracionários após o 1), portanto cabe exatamente no formato.
  2. Verificar expoente: E=3 está dentro de [-5,5].
Conclusão para x_1: representação na máquina é
+1{.}0010101_2\times 2^{3},
e é representável exatamente.

Passo 4

  1. Parte inteira: 16_{10}=10000_2 2^4).
  2. Parte fracionária: 0{,}3=\tfrac{3}{10}. Converter por multiplicação por 2 gera bits periódicos:
    • 0{,}3\cdot2=0{,}6\Rightarrow bit 0;
    • 0{,}6\cdot2=1{,}2\Rightarrow bit 1, resto 0{,}2;
    • 0{,}2\cdot2=0{,}4\Rightarrow bit 0;
    • 0{,}4\cdot2=0{,}8\Rightarrow bit 0;
    • 0{,}8\cdot2=1{,}6\Rightarrow bit 1, resto 0{,}6;
    • 0{,}6\cdot2=1{,}2\Rightarrow bit 1, resto 0{,}2.
      A partir daqui o resto 0{,}2 repete, portanto a expansão é periódica. Os primeiros bits da parte fracionária são
    0{,}3_{10}=0{.}0100110011\ldots_2,
    com o bloco 0011 repetindo (periódico).
  3. Juntando: 16{,}3 = 10000{,}0100110011\ldots_2.
  4. Normalizar: mover 4 casas (pois 10000 é 1 seguido de quatro zeros) dá
10000{,}010011\ldots_2 = 1{.}0000010011\ldots_2\times 2^{4}.
  1. Mantissa com t=8: mantemos 1 mais os 7 primeiros bits fracionários. Os primeiros 7 bits fracionários após o 1 são 0,0,0,0,0,1,0. Assim a mantissa armazenada (truncando/arreondando ao padrão de t=8) fica
1{.}0000010_2.
Observação sobre arredondamento: o oitavo bit fracionário (o primeiro bit descartado) é 0 aqui, então arredondar para o mais próximo ou truncar dá o mesmo resultado.
  1. Portanto a representação na máquina (valor armazenado) é
+1{.}0000010_2\times 2^{4}.
  1. Converter esse valor de volta para decimal para ver a aproximação:
1{.}0000010_2 = 1 + 2^{-6} = 1 + \tfrac{1}{64} = 1{,}015625.
Multiplicando por 2^{4}=16 obtém-se 16\cdot 1{,}015625 = 16{,}25.
Conclusão para x_2: como 0{,}3 tem expansão binária periódica infinita, x_2 não pode ser representado exatamente com apenas 7 bits fracionários; a máquina armazena aproximadamente
+1{.}0000010_2\times 2^{4}=16{,}25.

Passo 5

  1. Parte inteira: 126_{10}. Em binário 126 = 64+32+16+8+4+2 = 1111110_2.
  2. Parte fracionária: 0{,}5 = 1/2 = 0{.}1_2 — termina imediatamente, exata em binário.
  3. Juntando: 126{,}5 = 1111110{,}1_2.
  4. Normalizar: mover o ponto 6 casas para a esquerda (pois 1111110 tem 7 dígitos, o 1 inicial fica na posição mais à esquerda) dá
1111110{,}1_2 = 1{.}1111101_2\times 2^{6}.
  1. Mantissa: a mantissa 1{.}1111101_2 tem exatamente 7 bits fracionários e, portanto, em termos de dígitos significativos ela caberia no t=8 (é exata quanto à mantissa).
  2. Porém o expoente necessário é E=6. O intervalo permitido é E\in[-5,5]. Como 6>5, esse número exige um expoente fora do intervalo da máquina — isto é overflow para este formato normalizado.
  3. Podemos também calcular o maior número normalizado representável nesta máquina para visualizar:
\text{máximo}=(1{.}1111111_2)\times 2^{5} = (2-2^{-7})\times 2^{5} = 2^{6}-2^{-2}=64-0{,}25=63{,}75.á
Como 126{,}5>63{,}75, é impossível representar 126{,}5 normalmente nesta máquina.
Conclusão para x_3: não é representável por overflow do expoente (expoente requerido 6 está fora de [-5,5]).

Resposta

(a) x_{1}=+1{.}0010101_{2}\times 2^{3}, \quad x_{2}\approx +1{.}0000010_{2}\times 2^{4}=16{,}25, \quad x_{3} não pode ser representado (expoente requerido 6>5).
(b) x_{1}: sim, exatamente; \quad x_{2}: não, pois 0{,}3 tem expansão binária periódica (a mantissa é truncada) — aproximação 16{,}25; \quad x_{3}: não, pois exige E=6 (fora do intervalo [-5,5]).

Exercícios relacionados