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
)?
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 |
(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
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
)
– o bit
– o bit
– os bits
– os bits
Recebemos então o vetor de bits (índices
\(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 (
), expoente (
) e mantissa (
):
– bit
:
número positivo.
– bit : sinal do expoente positivo.
– bits –
:
, logo
.
– bits –
(mantissa):
– bit
– bits
– bits
Passo 3
Calculamos aproximadamente
O número real vale então
Passo 4
Verificamos se
está normalizado: num sistema binário normalizado é preciso
. Aqui
, logo não está. Para normalizar, deslocamos a mantissa uma posição à esquerda até obter
no primeiro bit e subtraímos
no expoente por deslocamento:
– nova mantissa
, cujos bits são
– novo expoente
.
Passo 5
b) Como
, o número é positivo.
c) Em módulo vale cerca de , logo é maior do que
.
c) Em módulo vale cerca de
Passo 6
d) Para representar em
queremos
dígitos decimais de precisão e expoente entre
e
. Em decimal aproximamos
com
dígitos significativos fica
onde a mantissa tem
algarismos (
,
,
,
,
,
) e o expoente decimal é
.
Resposta
(a) Não está normalizado. Normalizando obtemos
(b) O número é positivo.
(c) Em módulo é maior do que .
(d) Em :
(c) Em módulo é maior do que
(d) Em