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
.
Multiplique 1234 por 0.016 .
Então considere um computador hipotético com dois dígitos (
Multiplique 1234 por 0.016 .
Passo 1
Então, o que a questão pede é: “Multiplicar 1234 por 0.016” num sistema de ponto flutuante com base
, mantissa de
dígitos e expoentes entre
e
.
Conteúdo: representação em ponto flutuante (normalização, multiplicação de mantissas, soma de expoentes e arredondamento).
O que vamos precisar:
Conteúdo: representação em ponto flutuante (normalização, multiplicação de mantissas, soma de expoentes e arredondamento).
O que vamos precisar:
- Colocar cada número na forma normalizada
(com ). - Multiplicar mantissas e somar expoentes.
- Normalizar de novo, arredondar para 2 dígitos.
Passo 2
Primeiro, representamos cada número:
- 1234 em ponto flutuante:
1234 =, mas nosso formato é , então guardamos só dois dígitos na parte fracionária: (porque , a melhor aproximação disponível). - 0.016 em ponto flutuante:
0.016 =. Para ter mantissa e com 2 dígitos:
Passo 3
Agora multiplicamos mantissas e somamos expoentes:
- Mantissas:
. - Expoentes:
.
Logo o resultado bruto é
Passo 4
Precisamos normalizar (primeiro dígito não pode ser zero) e arredondar para 2 dígitos:
- Normalização:
(movemos a vírgula pra frente 1 casa: expoente cai de 3 para 2). - Arredondamento para
: (descartamos o “2” extra, sem causar “carry”).
Então a forma final é