Considere o sistema de aritmética de ponto flutuante \mathrm{F}(2,4,2,3) normalizado:
Os seguintes números na base 10 podem ser representados em F por truncamento (pertencem a F ou ocorre underflow ou overflow)? Represente-os nesse sistema e indique underflow ou overflow se for o caso.

Passo 1

O enunciado pede: dado o sistema de ponto flutuante normalizado \mathrm{F}(2,4,2,3), verificar se “os seguintes números na base 10” podem ser representados por truncamento (ou se ocorre underflow/overflow), e representar cada um no sistema (ou indicar underflow/overflow).
Informações fornecidas explicitamente:
  • O sistema é \mathrm{F}(2,4,2,3) normalizado.
Importante: a lista dos números decimais a serem testados NÃO foi fornecida no enunciado que recebi. Sem essa lista de números concretos não há como fazer as representações pedidas nem afirmar, caso a caso, se há underflow ou overflow. Portanto, não posso entregar as respostas numéricas finais sem os números a testar.
Vou, no entanto, explicar passo a passo e de forma didática como se procede para qualquer número: como interpretar \mathrm{F}(2,4,2,3), como converter um número decimal para esse formato por truncamento, como detectar underflow e overflow e como escrever o resultado final. Assim, quando você me mandar a lista de números (ou fizer na prova), você terá o procedimento completo para aplicar rapidamente.

Passo 2

O que significa \mathrm{F}(2,4,2,3) (interpretação padrão das notações usadas em FP):
  • \beta = 2 é a base (sistema binário).
  • t = 4 é a precisão: o número de dígitos na mantissa (número total de dígitos significativos na base 2). Para números normalizados em base 2, a mantissa tem a forma 1.b_1 b_2 b_3 (ou seja, o primeiro dígito é sempre 1 e somando todos os dígitos temos t=4 dígitos: o 1 mais três dígitos fracionários).
  • Os últimos dois parâmetros 2 e 3 costumam indicar o menor e o maior expoente permitidos, isto é L e U. Vou usar literalmente L=2 e U=3 (ou seja, os expoentes possíveis são e\in\{2,3\}). Observação: em muitos textos aparece L negativo (ex.: -2); se o exercício original tivesse L=-2 o procedimento é o mesmo, apenas os limites de underflow/overflow mudam. Se você tiver dúvida, confirme se era 2 ou -2; aqui eu explico com os parâmetros tal como escritos.
Resumo da forma de um número representável (normalizado) em \mathrm{F}(2,4,2,3):
x = \pm (1.b_1 b_2 b_3)_2 \times 2^{e},\qquad e\in\{2,3\}.
Cada b_i é 0 ou 1. São, portanto, possíveis 2^3=8 mantissas diferentes (com sinal +/−) e dois expoentes, totalizando um conjunto finito de números representáveis.

Passo 3

Regra geral para testar um número decimal x (passos práticos que você deve aplicar na prova):
  1. Converter x para binário: separar parte inteira e parte fracionária e converter cada uma.
    • Parte inteira: dividir por 2 sucessivamente (ou escrever em binário de forma direta).
    • Parte fracionária: multiplicar a parte fracionária por 2 repetidamente; a parte inteira de cada produto dá os bits sucessivos.
  2. Escrever o binário em forma normalizada: \pm 1.\text{(bits)} \times 2^{e}. Aqui e é escolhido para deslocar o ponto binário de modo que exista exatamente um dígito 1 antes do ponto (para números não nulos).
  3. Mantissa: após normalizar, mantenha os t=4 dígitos significativos na mantissa. Em base 2 normalizada isso significa manter o dígito inicial 1 mais os próximos t-1=3 bits fracionários: 1.b_1 b_2 b_3.
  4. Truncamento: como o enunciado pede representação por truncamento, você deve simplesmente cortar (ignorar) todos os bits fracionários além de b_3 (sem arredondar). Ou seja, se a mantissa normalizada completa fosse 1.b_1 b_2 b_3 b_4 b_5\cdots, a versão por truncamento fica 1.b_1 b_2 b_3.
  5. Expoente: depois da normalização, determine o expoente inteiro e. Verifique se e está dentro da faixa permitida L\le e \le U. No nosso caso assumido 2\le e \le 3.
    • Se e>U então ocorre overflow: o número é demasiado grande para o sistema.
    • Se e<L então ocorre underflow: o número é demasiado pequeno em magnitude para ser representado (no sistema normalizado).
  6. Valor aproximado final: o número representado é
\text{valor representado} = \pm (1.b_1 b_2 b_3)_2 \times 2^{e},
que você pode converter de volta para decimal se quiser comparar com o x original.

Passo 4

Explicando, passo a passo, a conversão decimal → binário (com exemplos curtos):
  • Exemplo de conversão da parte inteira: 13_{10}. 13\div2=6\\ \text{(resto 1)},\\\ 6\div2=3\\ \text{(resto 0)},\\\ 3\div2=1\\ \text{(resto 1)},\\\ 1\div2=0\\ \text{(resto 1)}.Lendo restos de baixo para cima: 13_{10} = 1101_2.
  • Exemplo de conversão da parte fracionária: 0{,}625_{10}. 0{,}625\times2=1{,}25\Rightarrow\text{bit }1;\quad 0{,}25\times2=0{,}5\Rightarrow\text{bit }0;\quad 0{,}5\times2=1{,}0\Rightarrow\text{bit }1.Logo 0{,}625_{10}=0{,}101_2.
  • Assim 13{,}625_{10}=1101{,}101_2.

Passo 5

Como normalizar e truncar (continuação do exemplo 13{,}625_{10}):
  • O binário 1101{,}101_2 pode ser escrito como 1{,}101101_2\times 2^{3} (deslocou-se o ponto 3 posições para a esquerda porque 1101_2 = 1{,}101_2\times2^{3}).
  • Mantissa infinita (ou longa) seria 1.101101\ldots. Com t=4 dígitos mantemos 1.b_1 b_2 b_3 = 1.101. Por truncamento cortamos além do terceiro bit fracionário. Assim a representação por truncamento é:
(1.101)_2 \times 2^{3}.
  • Verificação do expoente: aqui e=3. Como 3 está na faixa 2\le e\le3, não há overflow nem underflow.
  • Converter de volta para decimal para ver o valor representado: (1.101)_2 = 1\cdot 2^0 + 1\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3} = 1 + \tfrac{1}{2} + 0 + \tfrac{1}{8} = 1{,}625.Multiplicando por 2^3=8: \text{valor representado} = 1{,}625\times 8 = 13{,}0.Observação: o truncamento fez o 13{,}625 ser aproximado por 13{,}0 no sistema \mathrm{F}(2,4,2,3) (isto é, perda de precisão esperada).

Passo 6

Como detectar underflow e overflow numericamente (limiares):
  • Maior magnitude positiva representável (usando e=U e a maior mantissa 1.111):
x_{\max} = (1.111)_2\times 2^{U}.
Calcule explicitamente (1.111)_2 = 1 + \tfrac{1}{2} + \tfrac{1}{4} + \tfrac{1}{8} = 1{,}875. Assim
x_{\max} = 1{,}875 \times 2^{U}.
No caso assumido U=3:
x_{\max} = 1{,}875 \times 2^{3} = 1{,}875 \times 8 = 15.
Portanto qualquer número absoluto maior que 15 causa overflow (não é representável: excede x_{\max}).
  • Menor magnitude positiva representável (usando e=L e a menor mantissa normalizada 1.000):
x_{\min} = (1.000)_2\times 2^{L} = 1 \times 2^{L}.
Se L=2 (como estamos assumindo literal), então
x_{\min}=2^{2}=4.
Isto quer dizer que, com L=2, o menor número positivo normalizado representável é 4. Qualquer número positivo menor que 4 (por exemplo 3{,}999 ou 0{,}5) está abaixo de x_{\min} e, sob a convenção de sistema normalizado sem subnormais, será underflow (não representável). Note que este comportamento é estranho se esperávamos L negativo; confirme L no enunciado original. Se L=-2 então x_{\min}=2^{-2}=0{,}25 (bem diferente).
  • Resumo prático: com os parâmetros literais L=2,U=3 a gama de números positivos representáveis é aproximadamente [4,\,15] (com sinais ± e saltos discretos). Fora desse intervalo ocorrem underflow (se muito pequeno) ou overflow (se muito grande).

Passo 7

Exemplo adicional rápido (um número pequeno): x=1{,}5_{10}.
  • Converter: 1{,}5_{10} = 1{,}1_2 (porque 0{,}5=0{,}1_2). Normalizado: 1{,}1_2 = 1{,}1\times 2^{0} (expoente e=0).
  • Verificar expoente: e=0 está abaixo de L=2, portanto com L=2 esse número sofreria underflow (não é representável como normalizado). Se o enunciado aceitasse subnormais (denormalizados) poderíamos representá-lo de outro modo — mas o enunciado disse “normalizado”, então não há subnormais aqui.

Passo 8

Resumo do procedimento para você aplicar rapidamente na prova (check-list):
  1. Converter o número decimal para binário.
  2. Normalizar como \pm 1.\text{(bits)}\times 2^{e}.
  3. Calcular e. Se e>U ⇒ overflow. Se e<L ⇒ underflow.
  4. Se L\le e\le U: truncar os bits da mantissa para ficar com t=4 dígitos no total (isto é, 1.b_1 b_2 b_3).
  5. Escrever o número representado e, se necessário, converter de volta para decimal para comparar erro.

Passo 9

Conclusão prática para o enunciado original: não posso dar respostas caso a caso porque a lista de números a testar não foi incluída. Se você me enviar esses números (por exemplo, uma lista como: 13{,}625, 1{,}5, 20, 0{,}3125, etc.), eu aplico o procedimento acima para cada um, indicando a representação por truncamento e se há underflow ou overflow.

Resposta

Não é possível responder porque a lista dos números a serem testados não foi fornecida.

Exercícios relacionados