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
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
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.
(b) O número é positivo ou negativo?
(c) Em módulo, o número é menor do que 1 ou maior do que 1?
(d) Como ficaria a representação deste número no sistema (i.e., base decimal, 6 dígitos na mantissa, e expoente variando de )?

Passo 1

O enunciado descreve uma máquina de ponto flutuante binária com bits, em que
– o bit é o sinal do número,
– o bit é o sinal do expoente,
– os bits ( bits) são o valor absoluto do expoente,
– os bits ( bits) são a mantissa fracionária.
Recebemos então o vetor de bits (índices a )
\(00000110\) | \(0101001001110110111101\)
onde separam-se os bits do sina xpoente e os bits da mantissa (observe que aqui a tabela deu bits, mas seguiremos decompondo em ). Vamos extrair sinal, expoente e mantissa e verificar normalização.

Passo 2

Extraímos sinal ( s), expoente ( E) e mantissa ( m):
– bit 0: s=0 Rightarrow número positivo.
– bit 1: sinal do expoente positivo.
– bits 2 7: 0,0,0,1,1,02 = 6, logo E=+6.
– bits 8 29 (mantissa):
m = 0b1b2cdots b22 =0.0,1,0,1,0,0,1,0,0,1,1,1,0,1,1,0,1,1,1,1,0,12

Passo 3

Calculamos aproximadamente
m approx 0tfrac14+0tfrac18+tfrac116+cdots+tfrac14194304 approx 0,3221275806
O número real vale então
x =(+1)times mtimes 2^E approx 0,32212758times 2^6 approx 20,616167

Passo 4

Verificamos se m está normalizado: num sistema binário normalizado é preciso b1=1. Aqui b1=0, logo não está. Para normalizar, deslocamos a mantissa uma posição à esquerda até obter 1 no primeiro bit e subtraímos 1 no expoente por deslocamento:
– nova mantissa m' = 2m approx 0,6442551613, cujos bits são
m' =0.1,0,1,0,0,1,0,0,1,1,1,0,1,1,0,1,1,1,1,0,1,02
– novo expoente E' = E -1 =5.

Passo 5

b) Como s=0, o número é positivo.
c) Em módulo vale cerca de 20,6, logo é maior do que 1.

Passo 6

d) Para representar em F(10,6,-10,10) queremos 6 dígitos decimais de precisão e expoente entre -10 e 10. Em decimal aproximamos
xapprox20,616167
com 6 dígitos significativos fica
x approx 2,06162times 10^1,
onde a mantissa tem 6 algarismos ( 2, 0, 6, 1, 6, 2) e o expoente decimal é +1.

Resposta

(a) Não está normalizado. Normalizando obtemos
m'=0.1,0,1,0,0,1,0,0,1,1,1,0,1,1,0,1,1,1,1,0,1,02, E'=5
(b) O número é positivo.
(c) Em módulo é maior do que 1.
(d) Em F(10,6,-10,10):
+2,06162times 10^1

Exercícios relacionados