Considere uma máquina cuja representação de números é dada por um sistema de ponto flutuante
, isto é, base binária, 8 dígitos na mantissa e expoente no intervalo
.
a) Represente os números
;
e
nessa máquina
b) Os números
e
podem ser representados exatamente no sistema? Justifique sua resposta para cada número.
a) Represente os números
b) Os números
Passo 1
O enunciado dá uma máquina de ponto flutuante
. Isso significa:
- base
; - mantissa com
dígitos binários (isto é, o formato normalizado tem um dígito seguido de bits fracionários: ); - expoente inteiro
com .
Os números a representar são:
-
, -
, -
.
O enunciado pede:
a) representar cada número nessa máquina (ou seja, escrever a forma normalizada com dígitos na mantissa e expoente dentro do intervalo);
b) dizer se cada um pode ser representado exatamente nessa máquina e justificar para cada número.
a) representar cada número nessa máquina (ou seja, escrever a forma normalizada com
b) dizer se cada um pode ser representado exatamente nessa máquina e justificar para cada número.
Passo 2
Como a máquina é normalizada e tem
, qualquer número (não nulo) representável tem a forma
onde cada
e
. Explicando:
- o dígito inicial é
(normalização) — portanto a mantissa tem mais exatamente bits fracionários; - se a expansão binária de um número termina (tem número finito de bits) com no máximo
bits fracionários depois do quando normalizado e o expoente caber no intervalo, o número é representável exatamente; - se a expansão binária da parte fracionária for periódica/infinita ou exigir mais que
bits fracionários, teremos aproximação (chop/round) pelo truncamento/arreondamento aos bits fracionários; - se o expoente necessário for
ou , ocorre overflow/underflow e o número não é representável nesse formato normalizado.
Para converter um decimal em binário: separar parte inteira e parte fracionária; converter a parte inteira por divisões sucessivas por
(ou reconhecer potências de
); converter a parte fracionária multiplicando por
repetidamente (cada produto dá o próximo bit). Vou aplicar isso passo a passo a cada
.
Passo 3
-
Parte inteira:
(porque ). -
Parte fracionária:
. Multiplicando por : -
bit (resto ); -
bit (resto ); -
bit (resto ); -
bit (resto , termina).
Assim a parte fracionária é.
-
-
Juntando:
. -
Normalizar: mover o ponto 3 casas à esquerda dá
-
Mantissa com
dígitos significa manter mais bits fracionários. Aqui já temos exatamente (o número tem exatamente 7 bits fracionários após o ), portanto cabe exatamente no formato. -
Verificar expoente:
está dentro de .
Conclusão para
: representação na máquina é
e é representável exatamente.
Passo 4
-
Parte inteira:
(é ). -
Parte fracionária:
. Converter por multiplicação por gera bits periódicos: -
bit ; -
bit , resto ; -
bit ; -
bit ; -
bit , resto ; -
bit , resto .
A partir daqui o restorepete, portanto a expansão é periódica. Os primeiros bits da parte fracionária são
com o blocorepetindo (periódico). -
-
Juntando:
. -
Normalizar: mover 4 casas (pois
é seguido de quatro zeros) dá
- Mantissa com
: mantemos mais os primeiros bits fracionários. Os primeiros bits fracionários após o são . Assim a mantissa armazenada (truncando/arreondando ao padrão de ) fica
Observação sobre arredondamento: o oitavo bit fracionário (o primeiro bit descartado) é
aqui, então arredondar para o mais próximo ou truncar dá o mesmo resultado.
- Portanto a representação na máquina (valor armazenado) é
- Converter esse valor de volta para decimal para ver a aproximação:
Multiplicando por
obtém-se
.
Conclusão para
: como
tem expansão binária periódica infinita,
não pode ser representado exatamente com apenas
bits fracionários; a máquina armazena aproximadamente
Passo 5
-
Parte inteira:
. Em binário . -
Parte fracionária:
— termina imediatamente, exata em binário. -
Juntando:
. -
Normalizar: mover o ponto 6 casas para a esquerda (pois
tem 7 dígitos, o inicial fica na posição mais à esquerda) dá
-
Mantissa: a mantissa
tem exatamente bits fracionários e, portanto, em termos de dígitos significativos ela caberia no (é exata quanto à mantissa). -
Porém o expoente necessário é
. O intervalo permitido é . Como , esse número exige um expoente fora do intervalo da máquina — isto é overflow para este formato normalizado. -
Podemos também calcular o maior número normalizado representável nesta máquina para visualizar:
Como
, é impossível representar
normalmente nesta máquina.
Conclusão para
: não é representável por overflow do expoente (expoente requerido
está fora de
).
Resposta
(a)
, \quad
, \quad
não pode ser representado (expoente requerido
).
(b) sim, exatamente; \quad
não, pois
tem expansão binária periódica (a mantissa é truncada) — aproximação
; \quad
não, pois exige
(fora do intervalo
).
(b)