Considere um equipamento cujo sistema de ponto flutuante normalizado é
SPF(2,10,-15,15),
de base 2, 10 dígitos na mantissa, menor expoente -15 e maior expoente 15. Para este sistema:
d) Verifique se existem reais entre o menor e o próximo positivo. Comente.

Passo 1

Beleza! Então o enunciado fala de um sistema de ponto flutuante normalizado SPF(2,10,−15,15). Isso quer dizer que:
  • A base é 2.
  • A mantissa tem 10 dígitos binários (1 bit antes da vírgula e 9 depois).
  • O menor expoente é −15, o maior é 15.
A parte (d) pede: “Verifique se existem números reais entre o menor positivo normalizado e o próximo positivo.”
Para resolver isso a gente vai precisar entender como se forma o menor número positivo normalizado e qual é o próximo imediatamente acima dele, e daí ver o intervalo entre eles.

Passo 2

Primeiro a gente monta o menor positivo normalizado. Por definição, um float normalizado em base 2 tem forma

com pm1underbraceb1b2cdots b99 bits2times2^e.
O menor e>=-15 é e, e para ser o “menor positivo” os bits depois do ponto são todos zero. Logo:
-15
O próximo valor representa a mantissa mínima incrementada em 1 unidade de menor ordem (ulp). Isso dá
xmin=+1.0000000002times2^-15=2^-15
(Repare que o último bit da mantissa vale 1.0000000012times2^-15=(1+2^-9)times2^-15=2^-15+2^-24 na parte fracionária, então o ulp vale 2^-9.)

Passo 3

Agora vamos olhar o intervalo:
l(2^-15,,2^-15+2^-24r)
Esse é um intervalo aberto no mundo dos números reais. Sabemos que entre quaisquer dois reais sempre cabem infinitos outros reais. Ou seja, existem zilhões de números reais ali dentro, mas nenhum deles é representável no nosso sistema SPF, porque essa máquina só vê exatamente 2^-15 ou 2^-15+2^-24 como vizinhos.

Resposta

Sim, existem infinitos números reais estritamente entre o menor positivo (2^-15) e o próximo (2^-15+2^-24), mas nenhum deles é um número de ponto flutuante desse sistema.

Exercícios relacionados