Questão 1. (Valor 2,0) Calcule o valor aproximado \bar{x} para x=0.1234 quando x é convertido para o sistema de ponto flutuante \mathrm{F}(2,6,-31,32). Apresente o valor final com arredondamento para 4 casas decimais.
Passo 1
O enunciado pede que a gente calcule o valor aproximado \bar{x} para x=0,1234 ao converter x para o sistema de ponto flutuante \mathrm{F}(2,6,-31,32) e que o resultado final seja apresentado com arredondamento para 4 casas decimais. Informações dadas:
base: \beta=2;
precisão: t=6 dígitos significativos (em base 2);
expoente mínimo: e_{\min}=-31;
expoente máximo: e_{\max}=32;
número original: x=0,1234 (decimal).
A tarefa é encontrar a representação em \mathrm{F}(2,6,-31,32) de x e depois dar \bar{x} em decimal, arredondado para 4 casas.
Passo 2
Explicando o formato e como vamos proceder (passo didático):
Em \mathrm{F}(\beta,t,e_{\min},e_{\max}) uma máquina normalizada em base \beta representa números na forma
\pm(d_1.d_2d_3\ldots d_t)_{\beta}\times\beta^{e},
onde d_1\neq 0 (temos t dígitos significativos no total, contando d_1). No caso \beta=2, sempre d_1=1 para números normalizados diferentes de zero; assim a mantissa tem a forma 1.f_1f_2\ldots f_{t-1} (um 1 seguido de t-1 bits fracionais).
Aqui t=6, então a mantissa terá 1 seguido de 5 bits fracionais: 1.f_1f_2f_3f_4f_5.
Nosso plano: (a) obter a expansão binária de x (bits depois do ponto); (b) normalizar para a forma 1.\text{(5 bits)}\times2^{e}; (c) aplicar arredondamento para t=6 dígitos (arredondamento para o mais próximo representável); (d) converter de volta para decimal e arredondar o resultado final para 4 casas decimais.
Observação sobre arredondamento: vamos usar arredondamento para o mais próximo (round-to-nearest). Para decidir se aumentamos a mantissa, olhamos o bit imediatamente após os t dígitos (bit de guarda) e os bits seguintes.
Passo 3
Vamos obter a expansão binária de x=0,1234 usando multiplicações sucessivas por 2. Em cada passo, o inteiro obtido é o próximo bit binário. Vou mostrar os primeiros bits suficientes para decidir o arredondamento.
Começamos com r_0=0,1234.
r_0\cdot2 = 0,2468 \Rightarrow bit b_1=0.
0,2468\cdot2 = 0,4936 \Rightarrow bit b_2=0.
0,4936\cdot2 = 0,9872 \Rightarrow bit b_3=0.
0,9872\cdot2 = 1,9744 \Rightarrow bit b_4=1, resto 0,9744.
0,9744\cdot2 = 1,9488 \Rightarrow bit b_5=1, resto 0,9488.
0,9488\cdot2 = 1,8976 \Rightarrow bit b_6=1, resto 0,8976.
0,8976\cdot2 = 1,7952 \Rightarrow bit b_7=1, resto 0,7952.
0,7952\cdot2 = 1,5904 \Rightarrow bit b_8=1, resto 0,5904.
0,5904\cdot2 = 1,1808 \Rightarrow bit b_9=1, resto 0,1808.
0,1808\cdot2 = 0,3616 \Rightarrow bit b_{10}=0.
0,3616\cdot2 = 0,7232 \Rightarrow bit b_{11}=0.
0,7232\cdot2 = 1,4464 \Rightarrow bit b_{12}=1, resto 0,4464.
0,4464\cdot2 = 0,8928 \Rightarrow bit b_{13}=0.
0,8928\cdot2 = 1,7856 \Rightarrow bit b_{14}=1, resto 0,7856.
(chegou-se a bits suficientes para decidir arredondamento)
Para normalizar, precisamos de um fator 2^{e} de modo que a mantissa comece com 1.. Observando os primeiros bits, o primeiro 1 aparece em b_4. Isso significa que ao multiplicar x por 2^{4} obtemos algo entre 1 e 2. Logo
x = 1.\underbrace{b_5 b_6 b_7 b_8 b_9\ldots}_{\text{bits fracionários}}\times 2^{-4}.
Como t=6, a representação exigirá 6 dígitos significativos: d_1.d_2d_3d_4d_5d_6 em base 2. Em base 2 com normalização d_1=1. Assim os dígitos correspondem a
Ou seja, a mantissa truncada sem arredondamento é 1.11111_2 (onde os cinco bits fracionários são todos 1).
Decisão de arredondamento:
O próximo bit (bit de guarda) é b_{10}=0. Em round-to-nearest, se o bit de guarda for 0, não arredondamos para cima (a menos que tenhamos um caso de empate exatamente no meio, o que não ocorre aqui). Mesmo que existam bits 1 após o bit de guarda, como o bit de guarda é 0 o valor adicional é menor que metade da unidade na última posição representável (ULP), então não devemos incrementar a mantissa.
Conclusão: a representação em \mathrm{F}(2,6,-31,32) mais próxima é
\bar{x} = (1.11111)_2\times 2^{-4}.
Passo 5
Converter a representação para decimal para obter o valor aproximado \bar{x}: