Considere a representação de ponto flutuante
.
(a) escreva todos os números representáveis e converta-os para base 10.
(b) os números
e
são representáveis?
(a) escreva todos os números representáveis e converta-os para base 10.
(b) os números
Passo 1
O enunciado pede para manipular float no formato
. Vamos precisar da definição de números normalizados em base 2 com mantissa de 3 bits (1 bit antes do ponto e 2 depois) e expoente
variando de 1 a 2.
Passo 2
Em ponto flutuante normalizado cada número (exceto zero) é da forma
onde
e
. Há 4 escolhas de mantissa e 2 de expoente.
Passo 3
Calculamos os valores positivos para
:
Passo 4
Calculamos os valores positivos para
:
Passo 5
Incluímos também os sinais negativos e o zero. Assim, todos os números representáveis são
Passo 6
Para (b), basta comparar cada
com o conjunto acima. Como o menor valor positivo normalizado é 2, nenhum valor menor que 2 (como 0.38 e 0.15) é representável; e 5.3 não aparece na lista de passos anteriores, logo também não é representável.
Resposta
(a) Os números representáveis são 0, ±2, ±2.5, ±3, ±3.5, ±4, ±5, ±6 e ±7. (b) Nenhum dos valores 0.38, 5.3 e 0.15 é representável.