O sistema de ponto flutuante F(2,10,-15,15) pode ser representado em um computador da seguinte forma, ocupando ao todo 16 bits:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
|
onde
  • Posição 1: sinal da mantissa ( 0=+ ou 1=- )
  • Posições 2 até 11: mantissa (10 dígitos)
  • Posição 12: sinal do expoente ( 0=+ ou 1=- )
  • Posição 13 até 16: representação do expoente
Por exemplo, os números (23)_{10}=(0,1011100000)_{2} \times 2^{5}\left(\right. lembrete: \left.(5)_{10}=(101)_{2}\right) \mathrm{e}(-7,125)_{10}= -(0,1110010000)_{2} \times 2^{3} (lembrete: (3)_{10}=(11)_{2} ) possuem, respectivamente, a seguinte representação:
0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1
e
1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1
a) Determine o maior e o menor número decimal (em termos absolutos) que podem ser representados nesse sistema.
b) Represente os seguintes números nesse computador:
i) -3,1416
ii) 0,064
iii) e \times 10^{-5}

Passo 1

O enunciado define um sistema de ponto flutuante F(2,10,-15,15) com 16 bits:
  • 1 bit de sinal da mantissa,
  • 10 bits de mantissa (fracção normalizada no formato 0.b_1b_2\ldots b_{10}),
  • 1 bit de sinal do expoente,
  • 4 bits para o valor absoluto do expoente.
    a) pede o maior e o menor número (em módulo) representável.
    b) pede a codificação em 16 bits de três valores:
    i) -3,1416
    ii) 0,064
    iii) e\times10^{-5}.

Passo 2

Para achar o maior e o menor módulo, note que
- a mantissa varia de 0.1000000000_2 até 0.1111111111_2=1-2^{-10},
- o expoente varia de -15 até +15.
Logo o maior valor em módulo é
(1-2^{-10})\times2^{15} = \frac{1023}{1024}\times32768 =32736.
O menor valor positivo normal é
0.1000000000_2\times2^{-15} =2^{-1}\times2^{-15} =2^{-16} \approx1{,}5259\times10^{-5}.
Em módulo, o menor negativo é -2^{-16} e o maior negativo é -32736.

Passo 3

i) -3,1416
- Sinal da mantissa: 1.
- Normalizamos 3,1416 = f\times2^E com f\in[0.5,1):
E=2,\quad f=\frac{3{,}1416}{2^2}\approx0{,}7854.
Convertendo f em binário até 10 bits por truncamento:
f\approx0.1100100100_2.
- Expoente E=2 é positivo, sinal do expoente =0, e sua parte absoluta em 4 bits é 0010.
Portanto os 16 bits são:
sinal mantissa =1; mantissa =1100100100; sinal expoente =0; expoente =0010.

Passo 4

ii) 0,064
- Sinal da mantissa: 0.
- Normalizamos 0{,}064 = f\times2^E:
E=-3,\quad f=\frac{0{,}064}{2^{-3}}=0{,}512.
Em binário truncado a 10 bits:
f=0.1000011000_2.
- Expoente E=-3 tem sinal 1 e valor absoluto 3=0011_2.
Bits: sinal mantissa =0; mantissa =1000011000; sinal expoente =1; expoente =0011.

Passo 5

iii) e\times10^{-5}\approx2{,}71828\times10^{-5}
- Sinal da mantissa: 0.
- Procuramos E tal que f=\frac{2{,}71828\times10^{-5}}{2^E}\in[0.5,1).
Testando E=-15
f\approx2{,}71828\times10^{-5}\times2^{15}\approx0{,}8907.
Em binário truncado a 10 bits:
f\approx0.1110010000_2.
- Expoente E=-15 tem sinal 1 e parte absoluta 15=1111_2.
Bits: sinal mantissa =0; mantissa =1110010000; sinal expoente =1; expoente =1111.

Resposta

a) Maior valor em módulo: 32736. Menor valor em módulo (positivo normal): 2^{-16}\approx1{,}5259\times10^{-5}.
b)
i) -3,1416 \to 1110010010000010
ii) 0,064 \to 0100001100010011
iii) e\times10^{-5} \to 0111001000011111

Exercícios relacionados