Questão 1: Considere uma máquina que utiliza, base 10, três algarismos significativos e expoente
, para representar números reais na forma normalizada
. Represente, nesta máquina, os números abaixo:
0.000123
0.000123
Passo 1
Beleza, a questão pede pra gente pegar o número 0.000123 e “encaixar” numa máquina de ponto flutuante que usa base 10, três dígitos significativos (d₁d₂d₃) e expoente c no intervalo [–2, 2], tudo no formato
Ou seja, a gente vai ter que:
- transformar 0.000123 na forma normalizada (científica),
- ver se dá pra botar esse expoente dentro de [–2,2],
- e ajustar a mantissa pra 3 dígitos.
Passo 2
Primeiro, normaliza o número em notação científica “comum”:
0.000123 = .
Aqui a gente moveu o ponto 4 casas pra frente, por isso o expoente ficou –4.
0.000123 =
Aqui a gente moveu o ponto 4 casas pra frente, por isso o expoente ficou –4.
Passo 3
Agora, a forma exigida pela máquina é
, ou seja, a mantissa tem que começar em 0.1, 0.2, … até 0.9, e ter exatamente 3 dígitos depois do ponto.
Para representar assim, teríamos de escrever
Para representar
Então, comparar com o formato: d₁d₂d₃ = 123 e c = –3.
Passo 4
Só que o expoente c = –3 está fora do intervalo permitido [–2, 2].
Se a gente tentasse adaptar pra c = –2, a mantissa teria de ser 0.0123 (que não cabe em 3 dígitos significativos, ainda teria um zero extra em d₁!).
Ou seja, não tem jeito de ajustar mantissa e expoente pra cair no intervalo –2≤c≤2 sem perder a normalização.
Se a gente tentasse adaptar pra c = –2, a mantissa teria de ser 0.0123 (que não cabe em 3 dígitos significativos, ainda teria um zero extra em d₁!).
Ou seja, não tem jeito de ajustar mantissa e expoente pra cair no intervalo –2≤c≤2 sem perder a normalização.
Resposta
Como o expoente necessário (–3) não está no intervalo permitido, o número 0.000123 sofre underflow nessa máquina e é representado como 0.