Considere uma máquina que representa números no formato de ponto flutuante, com as seguintes características: base
, mantissa com
dígitos significativos, e expoente com valores inteiros no intervalo
. Escreva a representação em ponto flutuante de cada um dos itens abaixo, no referido sistema, tanto para o truncamento quanto para o arredondamento.
0.00000089 ;
0.00000089 ;
Passo 1
O enunciado dá as características do formato de ponto flutuante:
- base
; - mantissa com
dígitos significativos; - expoente inteiro no intervalo
.
O número a representar é.
O que pedem: escrever a representação desse número no sistema dado, tanto para o caso de truncamento quanto para o caso de arredondamento.
Passo 2
Relembrando o formato normalizado (explicação curta e necessária):
Uma representação normalizada em base com
dígitos tem a forma
Uma representação normalizada em base
onde
é um dígito não nulo (
) e
são dígitos decimais (inteiros entre
e
). O total de dígitos significativos é
(ou seja, o primeiro dígito antes do ponto mais três depois do ponto).
Truncamento significa cortar dígitos além dos sem ajustar; arredondamento significa aproximar ao valor representável mais próximo segundo a regra usual (por exemplo, arredondar para o dígito mais próximo, com critério de empate habitual).
Truncamento significa cortar dígitos além dos
Passo 3
Converter o número para notação científica normalizada (antes de verificar o expoente permitido):
deslocando a vírgula 7 casas para a direita dá
Para colocar exatamente
dígitos significativos, preenchendo com zeros à direita:
Portanto, a forma normalizada exata (com 4 dígitos) seria
, se o expoente
fosse permitido.
Passo 4
Verificar o intervalo de expoente: o sistema só permite expoentes inteiros entre
e
. O expoente necessário para a representação normalizada do número é
, e como
esse expoente está fora do intervalo permitido. Logo não é possível representar o número como um número normalizado no sistema dado.
Passo 5
Consequência prática (cenário padrão): quando o expoente requerido está fora do intervalo permitido para números normalizados e o enunciado não menciona suporte a números desnormalizados (subnormais), assume-se o comportamento padrão: underflow (estouro para baixo), isto é, o número é representado como
(flush-to-zero). Nesse caso, tanto no procedimento de truncamento quanto no de arredondamento o resultado final armazenado é
.
Passo 6
Para ficar claro sobre alternativas (explicação didática extra — leia só se quiser entender a diferença): há sistemas que suportam números desnormalizados (subnormais). Se o sistema aceitasse subnormais, representaria números com expoente fixo no mínimo
e mantissa permitindo
, ou seja formatos do tipo
No caso, podemos achar um mantissa subnormal que represente exatamente o número: queremos
, logo
. Com
dígitos isso seria
, que corresponde exatamente a
. Portanto, se subnormais fossem permitidos, o número caberia exatamente como subnormal
e não haveria diferença entre truncamento e arredondamento nesse caso.
Mas o enunciado não menciona subnormais; por isso a resposta “padrão” é underflow para zero.
Mas o enunciado não menciona subnormais; por isso a resposta “padrão” é underflow para zero.
Passo 7
Comparação numérica rápida para intuir a escala: o menor número normalizado positivo possível neste sistema (com
e
e expoente
) é
que é muito maior que
. Portanto faz sentido que o valor dado seja demasiado pequeno para ser representado como normalizado.
Resposta
Truncamento:
Arredondamento:
Arredondamento: