- Represente 3.1 no sistema binário (
) de ponto flutuante com 8 dígitos da mantissa (
).
Passo 1
O enunciado pede: representar o número decimal
no sistema de ponto flutuante binário com base
e mantissa com
dígitos.
Informações dadas e o que se pede:
Informações dadas e o que se pede:
- Número a representar:
(decimal). - Base:
(sistema binário). - Comprimento da mantissa:
dígitos (isto é, o significando normalizado terá bits no total, contando o dígito 1 à esquerda do ponto).
Objetivo: obter a representação normalizada e arredondada (para um formato de mantissa combits).
Passo 2
Primeiro converto a parte inteira
para binário. Dividindo por
:
-
resto (bit menos significativo) -
resto (bit mais significativo)
Logo a parte inteiraem binário é . Ou seja,
Passo 3
Agora converto a parte fracionária
(decimal) para binário usando multiplicações por
(trabalho bit a bit):
Fração inicial .
Fração inicial
Os bits obtidos começam por
— portanto a expansão binária de
é periódica:
Passo 4
Combino parte inteira e fracionária:
.
Passo 5
Normalizo a representação para a forma
. Como
, temos o expoente
e o significando (infinito)
Explicação sobre
:
conta todos os dígitos do significando (o dígito à esquerda do ponto também). Com
devemos ter exatamente
bits no significando: o primeiro é o
obrigatório e mais
bits fracionários. Então precisamos pegar os primeiros
bits da parte fracionária do significando e depois decidir arredondamento.
Passo 6
Extraio os primeiros
bits fracionários do significando normalizado:
a parte fracionária do significando é , logo os primeiros
bits fracionários são
a parte fracionária do significando é
Assim os
dígitos do significando (incluindo o 1 inicial) são
ou seja o significando truncado é
.
Agora verifico o próximo bit (o bit de guarda) para arredondamento: o próximo bit (o oitavo bit fracionário, que seria o nono dígito do significando) é
. Como o bit seguinte é
, o arredondamento para o mais próximo não incrementa o campo da mantissa. Portanto mantém-se
como significando com
dígitos.
Passo 7
Escrevo a representação final em ponto flutuante normalizado (base
,
):
Para checar o valor aproximado:
. Multiplicando por
dá
, que é a aproximação binária com
dígitos (erro
).