Recorde que a representação de um número em ponto flutuante é dada por:
onde
s são os dígitos da parte fracionária, tais que
é o valor da base,
é o número de dígitos e
é um expoente inteiro.
Então considere um computador hipotético com dois dígitos (
), base
e expoente na faixa
.
Divida 0.0064 por 7312 .
Então considere um computador hipotético com dois dígitos (
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:
O que vamos precisar:
- Normalizar cada número no formato
,
com exatamente dois dígitos na parte fracionária. - Fazer a divisão separando mantissas e expoentes.
- Arredondar o resultado a p=2 dígitos e checar se o expoente está dentro de [–5,5].
Passo 2
Normalizando 0.0064:
- Escrevo como
. - Já tem dois dígitos na mantissa (“.64”), então fica
Passo 3
Normalizando 7312:
- Escrevo como
. - 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:
. - Expoente:
.
Então antes de arredondar eu teria
Passo 5
Arredondando a mantissa a p=2 dígitos:
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, é