[04] Considere o sistema de ponto flutuante normalizado F(2,4,-1,2) de base 2,4 dígitos na mantissa, menor expoente -1 e maior expoente 2. Para este sistema:
a) Qual é o menor positivo exatamente representável?
b) Qual é o maior positivo exatamente representável?
c) Quantos são os exatamente representáveis positivos?
d) Qual é o número total de reais exatamente representáveis?
e) Represente na reta todos os positivos exatamente representáveis.
f) Defina as regiões de Overflow e de Underflow.

Passo 1

O enunciado dá o sistema de ponto flutuante normalizado F(2,4,-1,2). Listei abaixo, com calma, o que isso significa e o que é pedido:
  • Dados do sistema:
    • base \beta = 2.
    • número de dígitos na mantissa t = 4.
    • menor expoente L = -1.
    • maior expoente U = 2.
    • “Normalizado” significa que o primeiro dígito da mantissa (mais significativo) é não nulo; em base 2 isso implica que esse dígito é 1.
  • Perguntas pedidas:
    (a) Qual é o menor positivo exatamente representável?
    (b) Qual é o maior positivo exatamente representável?
    (c) Quantos são os exatamente representáveis positivos?
    (d) Qual é o número total de reais exatamente representáveis?
    (e) Represente na reta todos os positivos exatamente representáveis.
    (f) Defina as regiões de Overflow e de Underflow.

Passo 2

Entendendo a forma geral dos números representáveis (aula rápida, sem medo).
  • Num sistema F(\beta,t,L,U) normalizado, cada número (não nulo) tem a forma
\pm (d_1.d_2d_3\ldots d_t)_\beta \times \beta^{\,e},
onde:
  • d_1 é o primeiro dígito da mantissa e, por normalização, d_1\neq 0.
  • os dígitos d_i valem 0,1,\ldots,\beta-1.
  • o expoente e varia entre L e U, inclusive.
  • No nosso caso particular ( \beta=2, t=4):
    • o formato é \pm (d_1.d_2d_3d_4)_2\times 2^{\,e}.
    • por normalização em base 2, temos d_1=1. Logo as mantissas possíveis são as oito combinações
      (1.000)_2,(1.001)_2,\dots,(1.111)_2.
    • os expoentes possíveis são e\in\{-1,0,1,2\} (porque vai de L=-1 até U=2).

Passo 3

(a) Encontrar o menor positivo exatamente representável.
  • O menor positivo normalizado ocorre com:
    • mantissa mínima normalizada: (1.000)_2 (que em decimal vale exatamente 1),
    • expoente mínimo: e=L=-1.
  • Então o menor positivo é
(1.000)_2 \times 2^{-1} = 1 \times 2^{-1} = 2^{-1}.
  • Em decimal isso é \;2^{-1} = 0,5.
Logo o menor positivo exatamente representável é \;2^{-1}=\;0,5.

Passo 4

(b) Encontrar o maior positivo exatamente representável.
  • A mantissa máxima é (1.111)_2. Vamos converter: (1.111)_2 = 1 + \tfrac{1}{2} + \tfrac{1}{4} + \tfrac{1}{8} = 1,875.
  • O maior expoente é e=U=2. Portanto o maior positivo é
(1.111)_2 \times 2^{2} = 1{,}875 \times 4 = 7{,}5.
Logo o maior positivo exatamente representável é \;7{,}5.

Passo 5

(c) Quantos positivos exatamente representáveis existem?
  • Para cada expoente e (há U-L+1 expoentes) existem tantas mantissas quanto combinações dos t-1 dígitos livres (os d_2,\dots,d_t). Em base 2 cada dígito tem 2 valores, então há 2^{\,t-1} mantissas possíveis.
  • Fórmula: número de positivos normalizados = 2^{\,t-1}\times (U-L+1).
  • Substituindo t=4, U-L+1 = 2-(-1)+1 = 4, temos
2^{\,t-1} = 2^{3} = 8,\qquad 8\times 4 = 32.
Portanto existem 32 números exatamente representáveis e positivos.

Passo 6

(d) Número total de reais exatamente representáveis (incluindo negativos e zero).
  • O sistema é simétrico quanto ao sinal: para cada positivo há o correspondente negativo, e além disso o zero é normalmente representável (representado por todos os dígitos zero na mantissa/um caso especial).
  • Então total = positivos + negativos + zero = 32 + 32 + 1 = 65.
Logo o número total de reais exatamente representáveis é 65.

Passo 7

(e) Representar na reta todos os positivos exatamente representáveis.
Vou listar, agrupando por expoente e. Para cada expoente as mantissas são as oito formas (1.b_2b_3b_4)_2 com b_i\in\{0,1\}. Eu dou o valor decimal com vírgula (formato pedido).
Expoente e=-1 (multiplica por 2^{-1}=0{,}5):
\begin{aligned} &(1.000)_2\times 2^{-1} = 0{,}5,\\\ &(1.001)_2\times 2^{-1} = 0{,}5625,\\\ &(1.010)_2\times 2^{-1} = 0{,}625,\\\ &(1.011)_2\times 2^{-1} = 0{,}6875,\\\ &(1.100)_2\times 2^{-1} = 0{,}75,\\\ &(1.101)_2\times 2^{-1} = 0{,}8125,\\\ &(1.110)_2\times 2^{-1} = 0{,}875,\\\ &(1.111)_2\times 2^{-1} = 0{,}9375. \end{aligned}
Expoente e=0 (multiplica por 1):
\begin{aligned} &(1.000)_2\times 2^{0} = 1{,}0,\\\ &(1.001)_2\times 2^{0} = 1{,}125,\\\ &(1.010)_2\times 2^{0} = 1{,}25,\\\ &(1.011)_2\times 2^{0} = 1{,}375,\\\ &(1.100)_2\times 2^{0} = 1{,}5,\\\ &(1.101)_2\times 2^{0} = 1{,}625,\\\ &(1.110)_2\times 2^{0} = 1{,}75,\\\ &(1.111)_2\times 2^{0} = 1{,}875. \end{aligned}
Expoente e=1 (multiplica por 2):
\begin{aligned} &(1.000)_2\times 2^{1} = 2{,}0,\\\ &(1.001)_2\times 2^{1} = 2{,}25,\\\ &(1.010)_2\times 2^{1} = 2{,}5,\\\ &(1.011)_2\times 2^{1} = 2{,}75,\\\ &(1.100)_2\times 2^{1} = 3{,}0,\\\ &(1.101)_2\times 2^{1} = 3{,}25,\\\ &(1.110)_2\times 2^{1} = 3{,}5,\\\ &(1.111)_2\times 2^{1} = 3{,}75. \end{aligned}
Expoente e=2 (multiplica por 4):
\begin{aligned} &(1.000)_2\times 2^{2} = 4{,}0,\\\ &(1.001)_2\times 2^{2} = 4{,}5,\\\ &(1.010)_2\times 2^{2} = 5{,}0,\\\ &(1.011)_2\times 2^{2} = 5{,}5,\\\ &(1.100)_2\times 2^{2} = 6{,}0,\\\ &(1.101)_2\times 2^{2} = 6{,}5,\\\ &(1.110)_2\times 2^{2} = 7{,}0,\\\ &(1.111)_2\times 2^{2} = 7{,}5. \end{aligned}
Observação amiga: assim, na reta os positivos exatamente representáveis são exatamente os 32 números listados acima, ordenados de 0{,}5 até 7{,}5. Lembra que o zero também é representável (entre os negativos e positivos).

Passo 8

(f) Definir regiões de Overflow e de Underflow (explicação e definição precisa).
  • Underflow (no sentido de valores menores que o mínimo representável em magnitude, assumindo que não há números subnormal/denormalizados):
    • o menor positivo representável é m_{\min}=2^{-1}=0{,}5.
    • então qualquer número real com 0<|x|<m_{\min} tem magnitude menor que o menor normalizado e, portanto, causa underflow (não é representável como número normalizado). O zero é representável, então ele não é “underflow” no sentido de ser perdido — é representado exatamente.
    • definição em conjunto:
    \text{Underflow} = \{\,x\in\mathbb{R}\setminus\{0\} \mid |x|<2^{-1}\,\}.
  • Overflow:
    • o maior valor representável em módulo é M_{\max}=7{,}5.
    • qualquer x\in\mathbb{R} com |x|>M_{\max} ultrapassa a capacidade do formato e causa overflow.
    • definição em conjunto:
    \text{Overflow} = \{\,x\in\mathbb{R} \mid |x|>7{,}5\,\}.
  • Comentário prático: em muitas arquiteturas, underflow pode também ser tratado com números subnormais; aqui o enunciado foi explícito em “normalizado”, então não consideramos subnormais — por isso qualquer valor com 0<|x|<0{,}5 não é representável (além de 0) e é underflow.

Resposta

(a) 2^{-1} = 0{,}5
(b) 7{,}5
(c) 32
(d) 65
(e) Os 32 positivos representáveis (ordenados por expoente) são:
\begin{aligned} &0{,}5,\;0{,}5625,\;0{,}625,\;0{,}6875,\;0{,}75,\;0{,}8125,\;0{,}875,\;0{,}9375,\\\ &1{,}0,\;1{,}125,\;1{,}25,\;1{,}375,\;1{,}5,\;1{,}625,\;1{,}75,\;1{,}875,\\\ &2{,}0,\;2{,}25,\;2{,}5,\;2{,}75,\;3{,}0,\;3{,}25,\;3{,}5,\;3{,}75,\\\ &4{,}0,\;4{,}5,\;5{,}0,\;5{,}5,\;6{,}0,\;6{,}5,\;7{,}0,\;7{,}5. \end{aligned}
(f) Underflow: \{x\in\mathbb{R}\setminus\{0\}\mid |x|<2^{-1}\}.
Overflow: \{x\in\mathbb{R}\mid |x|>7{,}5\}.

Exercícios relacionados