Considere o sistema de aritmética de ponto flutuante
. Represente, nesse sistema, os seguintes números:
.
Passo 1
O enunciado pede que eu represente o número
no sistema de ponto flutuante
. Informações dadas e o que é pedido:
- Base do sistema:
. - Precisão (número de dígitos da mantissa):
. - Intervalo de expoentes:
, . - Número a representar:
. Interpreto isto como o número binário (ou seja, com vírgula binária). - O pedido é: escrever
na forma normalizada usada pelo sistema (mantissa com dígitos e expoente dentro de ), indicando se há arredondamento ou se é exato.
Passo 2
Primeiro vou entender exatamente o valor de
em termos de potências de
. O número
significa
Calculemos cada termo:
Somando:
Mas vou trabalhar em binário; em binário já temos
.
Passo 3
Agora normalizo
para a forma padrão de ponto flutuante binária. Em ponto flutuante normalizado (base 2) a mantissa deve ter a forma
(ou seja, o dígito à esquerda da vírgula é
). Para obter isso, desloco a vírgula uma posição à direita e compenso com um expoente:
Aqui multipliquei por
(desloquei a vírgula) e então coloquei
para compensar. Então a forma normalizada é mantissa
e expoente
.
Passo 4
Agora ajusto a mantissa ao formato do sistema com precisão
. A convenção é que a mantissa tem
dígitos em base
; em binário isso significa um dígito inteiro (o
à esquerda) mais
dígitos fracionários. Aqui
, então precisamos de 9 bits fracionários depois do ponto na mantissa.
A mantissa atual é
. Escrevendo até
dígitos e completando com zeros (ou arredondando se necessário), obtemos
onde acrescentei seis zeros depois de
para ter exatamente 9 bits fracionários. Não foi necessário arredondar, pois a sequência de dígitos originais termina depois de
; portanto a representação é exata no formato dado.
Passo 5
Verifico o expoente: obtive
, que está dentro do intervalo permitido
. O sinal é positivo, logo
.
Posso escrever a representação final em notação de ponto flutuante como
Se quisermos também expor em forma de campos (sinal, mantissa, expoente) temos: