Os números que podem ser representados com exatidão em um computador são denominados números de máquina. Nas operações de ponto fixo, os números de máquina são representados como uma soma limitada de termos da forma:
A representação binária de 0.2 é a seguinte fração periódica:
Qual é o erro na representação de 0.2 em um computador que utilize o sistema de ponto flutuante
?
Passo 1
O que o enunciado dá e o que pede:
- Dá a representação binária periódica de
:
- Dá o sistema de ponto flutuante
. - Pergunta: qual é o erro na representação de
nesse sistema (ou seja, a diferença entre o número representado pelo computador e o valor exato ).
Informações relevantes extraídas do enunciado:
- A base é
. - A precisão é
dígitos binários na mantissa (isto é, bits significativos). - A expansão binária de
é periódica e conhecida (repetição de bloco). - Presume-se arredondamento para o valor de ponto flutuante mais próximo (arredondamento para o mais próximo é o procedimento padrão que vamos usar).
Passo 2
Entender a forma normalizada do número binário periódico.
A expansão dada:
Observe que o primeiro
aparece na terceira posição depois da vírgula. Para escrever em forma normalizada (mantissa entre
e
em base
) deslocamos a vírgula três posições para a direita:
Portanto a mantissa infinita é
e o expoente é
.
Passo 3
Interpretar
quanto à mantissa e ao arredondamento.
- Precisão
significa que a mantissa armazenada tem bits significativos no total. Em forma normalizada isso corresponde a bit implícito de ordem inteira (o à esquerda da vírgula) e bits fracionários armazenados. - Assim, a mantissa armazenável tem a forma
onde cada
.
- Para arredondar a mantissa infinita, tomamos os
bits fracionários mais significativos e examinamos os bits seguintes (guard bit e sticky bits) para decidir se arredondamos para cima ou não. Adotaremos arredondamento para o mais próximo; se o bit seguinte (guard) for e houver quaisquer bits não nulos depois (sticky) então arredonda-se para cima.
Passo 4
Listar explicitamente os primeiros bits da mantissa infinita para extrair os
bits significativos.
A mantissa infinita é
Vamos anotar os
bits significativos (o primeiro é o
à esquerda da vírgula, seguido de
bits fracionários):
Os
bits são
ou seja a palavra binária de
bits
Passo 5
Determinar o arredondamento usando o bit seguinte (guard) e os bits seguintes (sticky).
- O próximo bit após esses
é o bit da mantissa normalizada; olhando a périodicidade, esse bit é . - Além disso existem bits não nulos após o bit
(a repetição continua), logo o conjunto guard+sticky indica que devemos arredondar para cima (arredondamento para o mais próximo). - Arredondar para cima equivale a somar
à unidade menos significativa armazenada (ao último bit desses bits). Como temos bits significativos com bits fracionários, a unidade menos significativa tem peso na mantissa.
Passo 6
Calcular o valor da mantissa truncada e arredondada.
Interpretemos os
bits
como um inteiro
com peso
para o primeiro bit. Esse inteiro é
A mantissa truncada vale
Como arredondamos para cima (adicionamos
à LSB de peso
), a mantissa arredondada passa a ser
Passo 7
Calcular o número de ponto flutuante representado e o erro absoluto.
O número representado pelo computador (após normalização com expoente
) é
O valor exato é
. Assim o erro absoluto (representação menos valor exato) é
Em forma decimal,
Portanto o erro é positivo (a representação é ligeiramente maior que
) e tem valor exato
.