Considere uma máquina cujo sistema de representação de números é definido por: base decimal, 4 dígitos na mantissa ( ), e expoentes no intervalo . Pede-se:
a. Qual o menor e o maior número, em módulo, representados nesta máquina?
b. Como será representado o número 48,00625 nesta máquina, se for usado o arredondamento? E se for usado o truncamento?
Passo 1
Beleza, aqui o enunciado diz que temos uma “máquina” que guarda números em ponto flutuante na base 10, com 4 dígitos na mantissa (t=4) e expoentes que vão de –5 até +5.
Conteúdo: representação normalizada em ponto flutuante.
O que vamos precisar:
Saber como é um número normalizado na base 10 com t dígitos.
Usar o expoente mínimo e máximo para achar o menor e o maior valor.
Saber formatar e depois truncar ou arredondar um número real.
Passo 2
Teoria rápida:
Em ponto flutuante normalizado na base 10 com t dígitos, todo número não-zero é escrito como
onde e cada é dígito decimal. Aqui , então a mantissa tem 4 dígitos (um antes da vírgula, três depois).
Os expoentes possíveis vão de a .
Passo 3
Maior número em módulo:
Mantissa máxima:
Expoente máximo:
→
Passo 4
Menor número (não zero) em módulo:
Mantissa mínima normalizada: (o não pode ser zero)
Expoente mínimo:
→
Passo 5
Agora o número . Primeiro a gente normaliza em base 10:
Passo 6
Truncamento (cortar após 4 dígitos na mantissa):
Mantissa original: → pega só “4.800”
Expoente continua
→
Passo 7
Arredondamento (olha o 5º dígito para decidir):
Mantissa original:
O 5º dígito é “6” (maior que 5), então a gente soma 0.0001 à mantissa “4.800”
→ mantissa arredondada =
→