Represente os seguintes números decimais numa máquina de calcular de 16 bits que utiliza o sistema de aritmética de ponto flutuante \mathrm{F}(2,10,-15,15).
d. -0,0000000123456

Passo 1

O enunciado pede para representar o número decimal -0{,}0000000123456 numa máquina de ponto flutuante \mathrm{F}(2,10,-15,15). Informações dadas e o que vamos usar:
  • Base da aritmética: \beta=2.
  • Precisão (número de dígitos binários na mantissa): t=10.
  • Intervalo de expoentes: L=-15 e U=15.
  • Número a representar: -0{,}0000000123456.
O objetivo é decidir qual é a representação desse número na máquina: número normalizado, subnormal (se houver) ou underflow para zero.

Passo 2

Entendendo o formato \mathrm{F}(2,10,-15,15) — o que significa na prática:
  • Números normalizados têm a forma
\pm(1.b_2b_3\ldots b_{10})_{2}\times 2^{e},
onde cada b_i\in\{0,1\} e o expoente satisfaz L\le e\le U.
  • O menor número positivo normalizado (valor absoluto) é
2^{L}.
Aqui isso vale
2^{-15}.
  • Se um valor absoluto é menor que 2^{L} e não há representação de subnormais especificada, então o número não pode ser representado como normalizado e ocorre underflow para zero (ou para um subnormal, se a máquina suportasse). Nesta máquina apenas a definição \mathrm{F}(2,10,-15,15) foi dada, sem menção a subnormais, portanto devemos assumir que números com expoente menor que L são representados como zero.

Passo 3

Primeiro escrevemos o número em notação científica decimal para facilitar conversões:
-0{,}0000000123456 = -1{,}23456\times 10^{-8}.

Passo 4

Precisamos saber qual seria o expoente binário e na forma normalizada \pm m\times 2^{e} com 1\le m<2. Calculamos \log_{2} do valor absoluto:
\log_{10}(1{,}23456)\approx 0{,}091315,
logo
\log_{10}(|x|)=\log_{10}(1{,}23456)-8\approx -7{,}908685.
Como \log_{2}(y)=\log_{10}(y)\log_{2}(10) e \log_{2}(10)\approx 3{,}321928, temos
\log_{2}(|x|)\approx -7{,}908685\times 3{,}321928\approx -26{,}27.
Portanto o expoente inteiro para a forma normalizada seria
e=\lfloor \log_{2}(|x|)\rfloor = -27,
e o mantissa seria aproximadamente
m = |x|\times 2^{27}\approx 1{,}657\quad(\text{verificação numérica}).çãé
Isto mostra que, se normalizado, teríamos algo do tipo
|x|\approx 1{,}657\times 2^{-27},
com 1\le 1{,}657<2, portanto o expoente correto para normalização é e=-27.

Passo 5

Comparação com o menor expoente permitido pela máquina:
e=-27 < L=-15.
Isto significa que |x| é muito menor que o menor número normalizado \,2^{-15}. Como a especificação \mathrm{F}(2,10,-15,15) não menciona números subnormais, o valor não pode ser representado como número normalizado nem como subnormal nessa máquina: ocorre underflow para zero. O sinal do número original é negativo, portanto a representação de ponto flutuante efetiva é o zero (com sinal negativo, se a máquina distinguir sinais de zero).

Resposta

-0

Exercícios relacionados