Um sistema de ponto flutuante pode ser expresso pela função
F=F\left(b, n, e_{1}, e_{2}\right)
Por exemplo, dado o sistema F(10,3,-4,4), o número x=-279, 15 é representado como x=-0,279 \times 10^{3}. Dados os sistemas de aritmética de ponto flutuante a seguir, represente os números (utilize truncamento), indicando possíveis casos de underflow e overflow.
F(2,4,-2,2)
i) (10,01)_{2}
ii) (0,0100)_{2}
iii) -(11,111)_{2}
iv) (1111,01)_{2}
v) -(0,001)_{2}
vi) (1,0001)_{2}

Passo 1

O sistema é
F(2,4,-2,2),
ou seja, cada número não nulo deve ser escrito como
\pm(0.d_1d_2d_3d_4)_2\times2^e,
com d_1=1, expoente e\in[-2,2], e truncamento de quaisquer dígitos extras em d_i. Se e>2 dá overflow; se e< -2 dá underflow.

Passo 2

i) Para x=(10,01)_2:
(10,01)_2 = 1.001_2\times2^1.
Reescrevendo em mantissa 0.d:
1.001_2\times2^1 = 0.1001_2\times2^2.
Não há dígitos além de quatro, e e=2\in[-2,2]. Logo
+0.1001_2\times2^2.

Passo 3

ii) Para x=(0,0100)_2:
(0,0100)_2 = 0.0100_2 = 1.00_2\times2^{-2}.
Ajustando para 0.d:
1.00_2\times2^{-2} = 0.1000_2\times2^{-1}.
Mantissa tem quatro dígitos e e=-1 está no intervalo. Logo
+0.1000_2\times2^{-1}.

Passo 4

iii) Para x=-(11,111)_2:
(11,111)_2 = 1.1111_2\times2^1.
Em forma 0.d:
1.1111_2\times2^1 = 0.11111_2\times2^2 \approx 0.1111_2\times2^2
( truncamos o quinto dígito ). Como e=2 é permitido, fica
-0.1111_2\times2^2.

Passo 5

iv) Para x=(1111,01)_2:
(1111,01)_2 = 1.11101_2\times2^3.
Em 0.d:
1.11101_2\times2^3 = 0.111101_2\times2^4,
mas e=4>2, sai do intervalo. Portanto é overflow.

Passo 6

v) Para x=-(0,001)_2:
(0,001)_2 = 0.001_2 = 1.0_2\times2^{-3},
onde e=-3< -2. Sai do intervalo inferior, logo underflow.

Passo 7

vi) Para x=(1,0001)_2:
(1,0001)_2 = 1.0001_2\times2^0.
Em mantissa 0.d:
1.0001_2\times2^0 = 0.10001_2\times2^1 \approx 0.1000_2\times2^1
(truncamos o quinto dígito). Como e=1 é válido, fica
+0.1000_2\times2^1.

Resposta

i) \;+0.1001_2\times2^2
ii) \;+0.1000_2\times2^{-1}
iii) \;-0.1111_2\times2^2
iv) overflow
v) underflow
vi) \;+0.1000_2\times2^1

Exercícios relacionados