Considere o sistema de ponto flutuante (beta, t, L, U)=(10,2,-2,3), que trunca a parcela que não pode ser incorporada `a mantissa, e um certo número real alpha, que tem representação binária (111011100)2.
a) Qual a região de overflow desse sistema de ponto flutuante?
b) Qual a região de underflow desse sistema de ponto flutuante?
c) Qual a representa tildec ao de alpha nesse sistema, denotada por fl(alpha) ?
d) Sendo alpha 1=25 e alpha 2=125, qual o resultado da operação de ponto de flutuante fl(fl(alpha 1)+fl(alpha 2)) ?
e) Sendo alpha 1=18 e alpha 2=0,025, qual o resultado da operação de ponto de flutuante fl(fl(alpha 1)+fl(alpha 2)) ?

Passo 1

O enunciado descreve um sistema de ponto flutuante de base beta=10, precisão t=2, expoentes e variando entre L=-2 e U=3, e truncamento. Precisamos:
  • (a) determinar a região de overflow, ou seja, valores cujo módulo excede o maior valor normal representável;
  • (b) a região de underflow, ou seja, valores cujo módulo é menor que o menor valor normal positivo;
  • (c) aproximar um número real alpha dado em binário (111011100)2 no sistema (truncando a mantissa de 2 dígitos);
  • (d) e (e) calcular fl(fl(alpha1)+fl(alpha2)) para dois pares (alpha1,alpha2).

Passo 2

O maior valor normal representável é
max = (beta - beta^1-t),beta^U
substituindo beta=10, t=2, U=3:
max = l(10 - 10^1-2r),10^3 = (10 - 0,1),1000 = 9,000
Logo a região de overflow é
,xmid lvert xrvert > 9000

Passo 3

O menor valor normal positivo é
min = 1times beta^L = 1times 10^-2 = 0,01
Portanto a região de underflow (valores não normalizados, excluindo zero) é
,xmid 0 < lvert xrvert < 0,01

Passo 4

Convertendo alpha de binário para decimal:
(111011100)2 = 256 + 128 + 64 + 16 + 8 + 4 = 476
Normalizando em base 10:
476 = 4,76times 10^2
Com mantissa de 2 dígitos e truncamento, mantemos 4,7, logo
fl(alpha) = 4,7times 10^2 = 470

Passo 5

Para alpha1=25 e alpha2=125:
alpha1=25=2,5times10^1 cabe em 2 dígitos, então fl(alpha1)=25.
alpha2=125=1,25times10^2 truncando para 2 dígitos na mantissa dá 1,2times10^2=120, logo fl(alpha2)=120.
Somando: 25+120=145. Normalizando 145=1,45times10^2 e truncando mantissa a 1,4, obtemos
fl(145)=1,4times10^2=140

Passo 6

Para alpha1=18 e alpha2=0,025:
alpha1=18=1,8times10^1 já tem 2 dígitos, então fl(alpha1)=18.
alpha2=0,025=2,5times10^-2 cabe em 2 dígitos, logo fl(alpha2)=0,025.
Somando: 18 + 0,025 = 18,025. Normalizando 18,025 = 1,8025times10^1 e truncando a 1,8, temos
fl(18,025)=1,8times10^1=18

Resposta

(a) xmid lvert xrvert > 9000
(b) xmid 0<lvert xrvert<0,01
(c) fl(alpha)=470
(d) fl(fl(25)+fl(125))=140
(e) fl(fl(18)+fl(0,025))=18

Exercícios relacionados