Considere um sistema de ponto flutuante dado por F(2,6,-8,8), isto é, um sistema binário com seis dígitos na mantissa e expoente variando de -8 a 8 . Sejam os números x1=raiz8 e x2=157.876.
(a) Represente os números x1 e x2 nesse sistema, isto é, para cada caso indique qual o sinal, o expoente e a mantissa em formato binário utilizando 11 bits, onde tem-se 1 bit para o sinal, 4 bits para o expoente e 6 bits para a mantissa.

Passo 1

Beleza, então o que temos é um sistema de ponto flutuante em base 2 com 6 dígitos na mantissa (t=6) e 4 bits pro expoente, que varia de L=–8 a U=8. Isso quer dizer que cada número vai ficar no formato
sinal (1 bit) | expoente (4 bits) | mantissa (6 bits)
Usamos a normalização em base 2: todo número é escrito como
x = (1)^s;1!f1f2dots f6times 2^e
onde o expoente “e” é armazenado em forma biased (com viés) usando bias = 2^{4–1}–1 = 7.
O exercício pede pra representar em binário, bit a bit, os números
x1=raiz8 e x2=157.876
no nosso sistema.

Passo 2

Converter 10.0110101 = 1.0110101 times 2^1 pra ponto flutuante:
  1. Cálculo numérico:
  2. Forma binária não-normalizada:
    2.828427 em binário é “10.0110101000…”, porque e aí multiplica por 2.
  3. Normalização:
    Empurro o ponto pra ficar “1.xxx”:
    Logo e a mantissa (a parte fracionária) é “0110101…”.
  4. Arredondamento pra 6 bits:
    Pego os primeiros 6 bits após o ponto: 0 1 1 0 1 0
    O 7º bit é 1 (e ainda tem resto), então round to nearest me faz somar 1 ao último bit:
    011010 → 011011.
  5. Expoente biased:
    e = 1
    expoente armazenado = e + 7 = 1 + 7 = 8 → binário “1000”.
  6. Sinal:
    é positivo → s = 0.
Então fica:
s = 0 | expoente = 1000 | mantissa = 011011

Passo 3

Converter pra ponto flutuante:
  1. Parte inteira em binário:
    157_{10} = 128 + 16 + 8 + 4 + 1 → 10011101_2
  2. Parte fracionária em binário (~.876):
    Multiplico sucessivamente por 2:
    .876×2=1.752 → bit1=1, resto .752
    .752×2=1.504 → bit2=1, resto .504
    .504×2=1.008 → bit3=1, resto .008
    .008×2=0.016 → bit4=0, resto .016
    .016×2=0.032 → bit5=0
    .032×2=0.064 → bit6=0
    .064×2=0.128 → bit7=0
    … dá “.1110000…”.
  3. Junta inteiro+frac:
    157.876 ≈ 10011101.1110000…
  4. Normalização:
    O “1” mais significativo tá em 2^7, então
    10011101.111… = 1.001110111000… × 2^7
    Logo e = 7 e mantissa = “001110111000…”.
  5. Arredondamento pra 6 bits:
    Pego 6 bits: 0 0 1 1 1 0
    O 7º bit é 1 (e tem resto), então somo 1:
    001110 → 001111.
  6. Expoente biased:
    e = 7
    expoente armazenado = 7 + 7 = 14 → binário “1110”.
  7. Sinal:
    157.876 é positivo → s = 0.
Então fica:
s = 0 | expoente = 1110 | mantissa = 001111

Resposta

x₁ = 0 1000 011011
x₂ = 0 1110 001111

Exercícios relacionados