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 8 bits. Seja o seguinte número representado nesta máquina:
0
1
1
0
0
1
Se o primeiro bit indica o sinal do número, o segundo é o sinal do expoente, os próximos três são o expoente, e os 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 ou maior do que 1?
d) Como ficaria a representação deste número no sistema
?
| 0 | 1 | 1 | 0 | 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 ou maior do que 1?
d) Como ficaria a representação deste número no sistema
Passo 1
O enunciado pede quatro coisas (a–d) sobre um número armazenado numa máquina de ponto flutuante. O enunciado dá as seguintes informações:
- A máquina “usa 8 bits” (isto está escrito no enunciado).
- A disposição dos campos é: primeiro bit = sinal do número; segundo bit = sinal do expoente; próximos três bits = expoente (magnitude); quatro últimos bits = mantissa.
- A sequência de bits fornecida pelo enunciado é (peguei exatamente do enunciado):
.
Observação importante (inconsistência): há uma contradição entre essas informações:
- A soma dos tamanhos dos campos declarados é
bits, mas o enunciado diz que a máquina usa 8 bits. - Além disso, a sequência de bits fornecida tem só 6 bits
, não tem 8 nem 9 bits.
Vou seguir um procedimento prático para poder resolver o exercício sem pedir esclarecimentos (escolhi uma suposição clara e simples):
- Assumo que o formato pretendido pelo enunciado é realmente o especificado em campos: 1 bit sinal, 1 bit sinal do expoente, 3 bits de módulo do expoente e 4 bits de mantissa (ou seja, formato de 9 bits no total).
- Assumo que a sequência fornecida foi truncada e que os bits faltantes à direita são zeros. Ou seja, completo a sequência dada com zeros à direita até obter 9 bits. Assim uso a sequência
Justifico: completar com zeros é a hipótese mais simples e natural quando bits finais não são dados; se o autor queria outra coisa teria fornecido todos os bits. Vou explicitar sempre essa hipótese nas contas seguintes.
Passo 2
Vou explicar como interpreto esse formato (aula rápida e clara, sem pular etapas):
- Estrutura (conforme hipótese): o número é representado como
onde:
-
é o bit de sinal (primeiro bit). Se o número é positivo; se é negativo. - O expoente
vem de dois elementos: um bit que dá o sinal do expoente (vou chamar de ) e três bits que dão a magnitude absoluta do expoente (vou chamar de ). Adoto a interpretação simples: se então ; se então . - A mantissa
segue a convenção usual de números normalizados em base 2: tem a forma (um “1” implícito seguido da parte fracionária), onde os quatro bits da mantissa armazenada são os quatro bits de fração . Ou seja, se os quatro bits da mantissa são , então
- Normalização: um número está normalizado quando
tem a forma (ou seja, o dígito binário antes do ponto é 1). Se a mantissa armazenada fosse tal que (por exemplo se não houvesse bit implícito 1), diríamos que o número está desnormalizado. Aqui adotei explicitamente o bit escondido 1, portanto a forma normalizada é .
Passo 3
Agora extraio os campos da sequência que adotei:
.
- Bit de sinal:
. Logo o número será positivo. - Bit sinal do expoente:
. Isso significa (pela convenção acima) que o expoente é negativo. - Próximos três bits (magnitude do expoente):
. Em decimal isso vale
Portanto, pelo sinal do expoente, o expoente real é
.
- Quatro bits da mantissa (parte fracionária):
. Isso representa a fração
Com o bit oculto 1, a mantissa é
- Então o número representado (na minha hipótese) é
Em decimal isso é
Passo 4
Responder explicitamente (com explicações curtas):
a) O número está normalizado?
a) O número está normalizado?
- Sim. Explicação: a convenção que adotei usa mantissa da forma
. Aqui a mantissa efetiva é (isto é seguido da fração ), logo o dígito antes do ponto é e a forma é normalizada. Em notação explícita a representação normalizada é
Passo 5
b) O número é positivo ou negativo?
- Como
, o número é positivo. (Já usei isso no cálculo: .)
Passo 6
c) Em módulo, o número é menor ou maior do que 1?
- Em módulo é menor que 1, pois
. Uma observação didática: mesmo com mantissa (no sentido de ), um expoente negativo suficientemente grande (aqui ) pode tornar o produto final menor que 1.
Passo 7
d) Representação no sistema
. Vou explicar o que é esse sistema e como faço a conversão:
- O sistema
tem base , precisão algarismos significativos (3 dígitos na mantissa decimal normalizada), e expoentes permitidos entre e . - Primeiro escrevo o número em notação decimal normalizada (mantissa entre
e ):
- Agora aplico a regra de arredondamento para caber em
dígitos. (Vou assumir arredondamento para o mais próximo; se o exercício pedisse truncamento eu usaria truncamento — sempre importante especificar a regra. Aqui escolho arredondamento.) -
com 3 dígitos significativos arredonda para (o quarto dígito é , então arredonda o terceiro dígito para cima).
-
- Assim a representação em
é
O expoente
está dentro do intervalo
, então a representação é válida.
Resposta
a) Sim. A representação normalizada (binária) é
.
b) Positivo.
c) Em módulo é menor que 1 (valor ).
d) Em :
.
b) Positivo.
c) Em módulo é menor que 1 (valor
d) Em