Considere o sistema de números de ponto flutuante F=F(2,8,-62,63) e a função de arredondamento a: G F(2,8,-62,63) por falta.
Qual é o menor número positivo e o maior número positivo de F ?

Passo 1

Então, galera, o problema é assim: a gente tem um sistema de ponto flutuante (base 2, precisão 8 dígitos, expoentes de a ) e quer saber qual é o menor número positivo e o maior número positivo que pertencem a esse sistema. Para resolver, vamos lembrar como números em ponto flutuante são formados e usar as regras de normalização (sem subnormais) e truncamento (arredondamento por “falta”).

Passo 2

Primeiro, a teoria básica:
  • Qualquer número normalizado em x = pm, (1d1d2ldots d7)2 times 2^e, tem a forma onde cada é 0 ou 1, o dígito antes do ponto (o “1.”) não pode ser zero, e o expoente varia de até .
  • Como a precisão é 8, temos 1 dígito “inteiro” fixo (o “1.”) e 7 dígitos de fração.
  • O truncamento (ou “chop”) significa que, se tivéssemos mais bits, a gente simplesmente corta sem arredondar.

Passo 3

Menor número positivo:
  • Para achar o menor, a gente coloca a mantissa mínima possível (que é exatamente xmin = +,1.00000002 times 2^-62 = 2^-62 , sem nenhum bit fracionário “1”) e o menor expoente permitido, que é .
  • Logo
Isso faz sentido porque, se a gente tentasse usar expoente menor que , não estaria mais no intervalo permitido.

Passo 4

Maior número positivo:
  • Agora a mantissa tem que ser a maior possível, ou seja xmax = +,1.11111112 times 2^63 (todos os 7 bits da fração valendo 1) e o maior expoente, xmax = l(2 - 2^-7r) times 2^63 .
  • Então
  • Em forma fechada, a mantissa .
  • Portanto

Resposta

Menor número positivo:
Maior número positivo:

Exercícios relacionados