Seja um sistema de aritmética de ponto flutuante cuja mantissa tenha \mathrm{t}=3 dígitos, base \mathrm{b}=10, \mathrm{l}=-4 e \mathrm{S}=4. Indique caso haja erro de underflow ou overflow.
Número Representação por arredondamento Representação com truncamento
1,25 0,125 \times 10^{1} 0,125 \times 10^{1}
10,053 0,101 \times 10^{2} 0,100 \times 10^{2}
-238,15
0,000000007
718235,82

Passo 1

O enunciado pede que, para um sistema de ponto flutuante com mantissa de t=3 dígitos, base b=10, expoentes limitados por l=-4 e S=4, verifiquemos a representação (por arredondamento e por truncamento) dos números da tabela e indiquemos se há erro de underflow ou overflow.
Informações relevantes fornecidas:
  • Mantissa tem t=3 dígitos significativos.
  • Base b=10.
  • Exponentes permitidos: e\in\{l,\ldots,S\}=\{-4,\ldots,4\}.
  • A forma normalizada adotada é \;0,d_1d_2d_3\times10^{e}\; com d_1\neq0.
  • Devemos preencher as representações por arredondamento e por truncamento e informar underflow/overflow quando ocorrerem.

Passo 2

Breve aula: como funciona a representação aqui (passo-a-passo didático).
  1. Normalização: qualquer número real não nulo é escrito como
\pm 0,d_1d_2d_3\ldots\times10^{e},
onde d_1 é um dígito não nulo (1 a 9). Apenas os primeiros t=3 dígitos d_1d_2d_3 ficam na mantissa armazenada; os demais são descartados ou usados para decidir o arredondamento. Exemplo genérico: x=0,abcdef\times10^{e} com t=3 fica, por truncamento, 0,abc\times10^{e}; por arredondamento, olhamos o quarto dígito d_4: se d_4\ge5 incrementa-se c (com carry se necessário), senão mantém-se abc.
  1. Limites de magnitude (com estes parâmetros e sem subnormais):
  • Maior número representável (valor absoluto máximo):
\max = 0,\underbrace{99\dots9}_{t\text{ dígitos}}\times10^{S}.í
Aqui t=3 e S=4, logo
\max = 0,999\times10^{4}=9990.
Qualquer número com |x|>\max causa overflow.
  • Menor número positivo normalizado (valor absoluto mínimo distinto de 0):
\min_{\text{norm}} = 0,100\times10^{l}.
Aqui l=-4, então
\min_{\text{norm}} = 0,100\times10^{-4}=10^{-5}.
Qualquer número com 0<|x|<\min_{\text{norm}} causa underflow (se o sistema não tiver subnormais) e tipicamente é truncado para zero.
  1. Regras práticas de arredondamento e truncamento usadas aqui:
  • Truncamento (chop): descarta-se tudo após os t dígitos da mantissa.
  • Arredondamento para o mais próximo (round-to-nearest, tie-breaking half-up para simplicidade): olhar o dígito imediatamente seguinte; se \ge5 incrementa o último dígito mantido, senão mantém.
Agora aplicamos essas ideias a cada número.

Passo 3

Número 1,25.
  1. Normalização: 1,25 = 0,125\times10^{1}.
  2. Mantissa já tem exatamente 3 dígitos d_1d_2d_3=125; não há dígitos extras para truncar/arredondar.
  3. Expoente e=1 está no intervalo [-4,4]. Não há underflow nem overflow.
Portanto:
  • Arredondamento: 0,125\times10^{1}.
  • Truncamento: 0,125\times10^{1}.

Passo 4

Número 10,053.
  1. Normalização conveniente: 10,053 = 0,10053\times10^{2}.
  2. Mantissa inicial com mais dígitos: 0,10053. Os três dígitos significativos são d_1d_2d_3=100. O quarto dígito (para decidir arredondamento) é 5.
  3. Truncamento: descarta-se a parte após os três dígitos, ficando 0,100\times10^{2}.
  4. Arredondamento: como o quarto dígito é 5 (metade), aplicando o esquema half-up incrementa-se o último dígito mantido: 0,100\to0,101. Assim 0,101\times10^{2}.
  5. Expoente e=2 está em [-4,4], logo não há underflow/overflow.
Portanto:
  • Arredondamento: 0,101\times10^{2}.
  • Truncamento: 0,100\times10^{2}.

Passo 5

Número -238,15.
  1. Normalização: -238,15 = -0,23815\times10^{3}.
  2. Mantissa inicial 0,23815. Os três dígitos mantidos são 238. O quarto dígito é 1.
  3. Truncamento: -0,238\times10^{3}.
  4. Arredondamento: quarto dígito 1<5, então não há incremento; portanto também -0,238\times10^{3}.
  5. Expoente e=3 está em [-4,4], portanto sem underflow/overflow.
Portanto:
  • Arredondamento: -0,238\times10^{3}.
  • Truncamento: -0,238\times10^{3}.

Passo 6

Número 0,000000007.
  1. Escrever em potência de 10: 0,000000007 = 7\times10^{-9} = 0,7\times10^{-8}. A forma normalizada com primeiro dígito não nulo seria 0,700\ldots\times10^{-8}.
  2. Expoente necessário e=-8. Mas o menor expoente permitido é l=-4. Assim |x|=7\times10^{-9} é muito pequeno para ser representado como número normalizado no intervalo de expoentes disponíveis.
  3. Comparando com o menor normalizado: \min_{\text{norm}}=10^{-5}, temos 7\times10^{-9}<10^{-5}. Portanto, sem subnormais suportados, o valor não é representável e resulta em underflow para zero. Tanto truncamento quanto arredondamento produzem 0 (ou sinal +0 se se preservar o sinal). Isso é underflow.
Portanto:
  • Arredondamento: 0 (underflow).
  • Truncamento: 0 (underflow).

Passo 7

Número 718235,82.
  1. Normalização: 718235,82 = 0,71823582\times10^{6}.
  2. Expoente necessário e=6. O maior expoente permitido é S=4. Como 6>4, o número está fora do intervalo de expoentes.
  3. Mesmo se truncássemos ou arredondássemos a mantissa para 0,718\times10^{6} ou 0,719\times10^{6}, o expoente continuaria 6 e portanto ainda estaria fora do intervalo. Logo ocorre overflow (valor absoluto maior que \max=9990). Normalmente isto resulta em \pm\infty ou erro de overflow; aqui indicamos overflow.
Portanto:
  • Arredondamento: overflow (não representável como número finito no formato).
  • Truncamento: overflow (não representável como número finito no formato).

Passo 8

Resumo final preenchendo as entradas faltantes (já calculadas acima):
  • 1,25: arredondamento 0,125\times10^{1}, truncamento 0,125\times10^{1}. (sem erro)
  • 10,053: arredondamento 0,101\times10^{2}, truncamento 0,100\times10^{2}. (sem erro)
  • -238,15: arredondamento -0,238\times10^{3}, truncamento -0,238\times10^{3}. (sem erro)
  • 0,000000007: arredondamento 0 (underflow), truncamento 0 (underflow).
  • 718235,82: arredondamento — overflow, truncamento — overflow.

Resposta

1,25:\; \text{arred. }0,125\times10^{1},\; \text{trunc. }0,125\times10^{1}
10,053:\; \text{arred. }0,101\times10^{2},\; \text{trunc. }0,100\times10^{2}
-238,15:\; \text{arred. }-0,238\times10^{3},\; \text{trunc. }-0,238\times10^{3}
0,000000007:\; \text{arred. }0\\ (\text{underflow}),\; \text{trunc. }0\\ (\text{underflow})
718235,82:\; \text{arred. }(\text{overflow}),\; \text{trunc. }(\text{overflow})

Exercícios relacionados