Seja uma máquina fictícia que opera em um sistema de ponto flutuante de base binária e que representa os números usando 32 bits. Seja o seguinte número representado nesta máquina:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
30 31
0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1
1 0
Se o primeiro bit indica o sinal do número, o segundo é o sinal do expoente, os próximos seis são o expoente, e os vinte e quatro últimos são a mantissa, responda às seguintes perguntas:
(a) O número está normalizado? Se não, normalize-o.

Passo 1

Beleza, a questão é sobre formatação de ponto‐flutuante em base 2, com 32 bits distribuídos assim:
  • 1 bit de sinal do número
  • 1 bit de sinal do expoente
  • 6 bits de valor absoluto do expoente
  • 24 bits da mantissa (sem bit implícito)
Eles dão os 32 bits e pedem: “(a) está normalizado? Se não, normalize.”
Para resolver, vamos extrair sinal, expoente e mantissa, ver se o primeiro bit da mantissa é 1 (condição de normalização em binário) e, se não estiver, “shiftar” a mantissa até ela começar com 1, ajustando o expoente.

Passo 2

Primeiro, isolamos cada campo a partir dos bits fornecidos:
  • Bit 0 (sinal do número): 0 → número positivo.
  • Bit 1 (sinal do expoente): 0 → expoente positivo.
  • Bits 2–7 (valor absoluto do expoente): 000110₂ = 6₁₀, logo E = +6.
  • Bits 8–31 (mantissa sem sinal oculto):
    0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0
Em notação, a mantissa M vale
M = 0.0101001001110110111101102
e o valor real é
V = (+) ;Mtimes2^6

Passo 3

Em ponto‐flutuante normalizado binário, exige‐se que a mantissa comece com 1 (isto é, seja da forma
1,b1b2cdots
). Aqui o primeiro bit da mantissa é 0, então NÃO está normalizado.

Passo 4

Para normalizar, a gente desloca a mantissa à esquerda até aparecer 1 no primeiro lugar e, para manter o mesmo valor V, decrementa o expoente a cada deslocamento.
A mantissa começa 0.0 1… → o primeiro 1 está na segunda posição. Então empurramos tudo 1 casa pra esquerda (multiplicamos M por 2) e reduzimos E de 6 para 5:
  • Novo expoente: E′ = 6 − 1 = 5 → em 6 bits fica 000101₂.
  • Nova mantissa, pegando os bits originais 9–31 e enchendo com 0 no final:
    original bits 9–31 =
    1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0
    então
    M' = 1.010010011101101111011002

Passo 5

Reescrevendo tudo em bits:
  • Sinal do número: 0
  • Sinal do expoente: 0
  • Expoente (6 bits): 000101
  • Mantissa (24 bits): 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0
Ou, em notação curta:
V = +;1.010010011101101111011002times2^5

Resposta

O número não está normalizado. A forma normalizada é
  0 | 0 | 000101 | 101001001110110111101100
que equivale a
   .

Exercícios relacionados