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:
(d) Como ficaria a representação deste número no sistema (i.e., base decimal, 6 dígitos na mantissa, e expoente variando de
?
(d) Como ficaria a representação deste número no sistema
Passo 1
Beleza, então a gente tem um número numa “máquina” que usa ponto‐flutuante em base 2 com 32 bits assim:
- bit 0 = sinal do número
- bit 1 = sinal do expoente
- bits 2–7 = valor absoluto do expoente em binário
- bits 8–31 = mantissa fracionária (normalizada, com 1 implícito antes do ponto)
O exercício (parte d) pede para converter essa mesma quantidade real para o sistema decimal
, ou seja:
- base
- mantissa com 6 dígitos significativos
- expoente inteiro variando de
a
O que vamos precisar:
- Extrair sinal, expoente e mantissa da sequência de bits.
- Calcular o valor real em decimal.
- Normalizar esse valor no formato
. - Arredondar a mantissa para 6 dígitos e checar que
.
Passo 2
Vamos ler os bits rapidamente:
- bit 0 = 0 → número positivo
- bit 1 = 0 → expoente é positivo
- bits 2–7 = 000011₂ →
em decimal, logo - bits 8–31 são a parte fracionária da mantissa. Chamamos essa fração de
Passo 3
Calculando
: cada bit
vale
ou
e dá contribuição
. Somando todos os bits que valem 1, a gente encontra
Como a mantissa é normalizada, o valor real é
Passo 4
Agora vamos pôr esse
no formato
.
- Normalização em base 10:
- Mantissa com 6 dígitos significativos →
.
Pegamos “1 . 05770216…” e arredondamos para 6 dígitos: - Expoente
está dentro de , beleza.