Recorde que a representação de um número em ponto flutuante é dada por:
pm d1 d2 d3 ldots dp times B^e
onde di s são os dígitos da parte fracionária, tais que 0 <= di <= B-1, d1 neq 0, B é o valor da base, p é o número de dígitos e e é um expoente inteiro.
Então considere um computador hipotético com dois dígitos ( p=2), base B=10 e expoente na faixa -5 <= e <= 5.
Divida 0.0064 por 7312 .

Passo 1

Beleza, vamos dividir 0.0064 por 7312 usando um computador “hipotético” que trabalha com números em ponto flutuante na base B=10, com p=2 dígitos na mantissa e expoentes entre –5 e +5.
O que vamos precisar:
  1. Normalizar cada número no formato
    ,
    com exatamente dois dígitos na parte fracionária.
  2. Fazer a divisão separando mantissas e expoentes.
  3. Arredondar o resultado a p=2 dígitos e checar se o expoente está dentro de [–5,5].

Passo 2

Normalizando 0.0064:
  1. Escrevo como 0.0064 = +64times10^-2.
  2. Já tem dois dígitos na mantissa (“.64”), então fica

Passo 3

Normalizando 7312:
  1. Escrevo como 7312 approx +73times10^4.
  2. Mas só posso ter p=2 dígitos: arredo
    (pois e , então .73 é mais próximo).
    Logo

Passo 4

Agora a divisão das mantissas e expoentes:
  • Mantissa: 0.00647312 approx +0.8767ldotstimes10^-6 .
  • Expoente: .
    Então antes de arredondar eu teria

Passo 5

Arredondando a mantissa a p=2 dígitos:
0.8767ldots ;longrightarrow; 88
e o expoente fica –6. Mas –6 está fora do intervalo permitido (–5 até +5), ou seja, o valor é demasiado pequeno e ocorre underflow. Nessa máquina, quando dá underflow, o resultado vira zero.

Resposta

O resultado da divisão, no formato dado e considerando underflow, é
boxed0

Exercícios relacionados