03
a) Escrever os números reais
, e
onde estão todos na base
em notação de um sistema de aritmética de ponto flutuante.
b) Considerando agora que estamos diante de uma máquina que utilize apenas três dígitos significativos e que tenha como limite inferior e superior para o expoente, respectivamente, -2 e 2 , como seriam representados nesta máquina os números do exemplo a)?
a) Escrever os números reais
b) Considerando agora que estamos diante de uma máquina que utilize apenas três dígitos significativos e que tenha como limite inferior e superior para o expoente, respectivamente, -2 e 2 , como seriam representados nesta máquina os números do exemplo a)?
Passo 1
O enunciado dá cinco números reais (vou corrigir a repetição de índice e chamar de
o terceiro número) e pede duas coisas:
- Números dados:
-
- Todas na base
.
As perguntas:
(a) Escrever esses números em notação de ponto flutuante (forma normalizada).
(b) Agora, supondo uma máquina com apenasdígitos significativos e expoente limitado por e (isto é, e ), como seriam representados na máquina os números do item (a)?
Passo 2
O que é a notação de ponto flutuante normalizada (explicação didática, passo a passo).
- Um número real (não nulo) em base
pode ser colocado na forma normalizada
onde:
-
é um dígito não nulo ( ); isso garante que a mantissa está “normalizada” (um único dígito à esquerda do ponto). -
são os dígitos da mantissa (no nosso caso , então dígitos 0,1,…,9). -
é o número de dígitos significativos guardados na mantissa (a máquina guarda apenas dígitos). -
é o expoente inteiro (ajusta a posição do ponto decimal). - Para escrever um número positivo
em forma normalizada: - Colocar o ponto decimal de modo que reste um único dígito não nulo antes do ponto.
- Esse deslocamento do ponto determina o expoente
. - A mantissa é então escrita com quantos dígitos forem necessários; se quisermos a forma que a máquina grava, devemos arredondar (ou truncar) para
dígitos significativos.
- Observações importantes para a máquina do item (b):
- Aqui
: mantissa terá a forma (três dígitos significativos). - Expoente permitido:
. - Menores valores normalizados positivos representáveis têm mantissa mínima
e expoente : isto é . - Maior valor representável é mantissa máxima
com expoente : isto é . - Valores cujo expoente normalizado cair fora do intervalo
não são representáveis como números normalizados nesta máquina. Normalmente: se o expoente for menor que (número muito pequeno) ocorre underflow (frequentemente o valor é aproximado por se não houver números subnormais); se for maior que ocorre overflow (valor não representável — máquina sinaliza overflow ou dá infinito em modelos modernos).
- Aqui
- Sobre arredondamento: para decidir os
dígitos quando há mais dígitos disponíveis, vou adotar o procedimento usual de arredondamento para o mais próximo (arredondamento para o inteiro mais próximo do último dígito conservado; em caso de empate, usar arredondamento para cima). Isso é o que costuma ser pedido em exercícios básicos; se fosse truncamento, os dígitos finais seriam simplesmente descartados.
Passo 3
Resolver (a): escrever cada número em notação normalizada em base
(sem limitar ainda o número de dígitos da mantissa).
- Para
: desloca-se o ponto para obter um único dígito não nulo antes do ponto: . Portanto
- Para
: já tem um dígito não nulo antes do ponto; expoente :
- Para
: deslocando o ponto: . Então
- Para
: . Logo
- Para
: normalizando: . Assim
Passo 4
Preparar (b): aplicar as restrições da máquina (
,
,
) e arredondar para
dígitos significativos.
- Primeiro achar a faixa representável:
- Menor normalizado positivo:
. - Maior representável:
.
- Menor normalizado positivo:
- Agora tratar cada
do item (a), normalizar para dígitos por arredondamento e verificar se o expoente resultante está no intervalo permitido.
Passo 5
Aplicar o procedimento para cada número (cálculos e decisões detalhadas).
- Para
. - Mantissa com
dígitos: precisa de três dígitos significativos. A mantissa atual é (dois dígitos). Completa-se com zero significativo: . - Expoente
está dentro de . - Representação na máquina:
- Mantissa com
- Para
. - Queremos três dígitos significativos: os dígitos iniciais são
. Mantemos os três primeiros e olhamos o próximo dígito para arredondar. Como , arredonda-se para baixo (sem alterar o último dígito mantido). - Mantissa arredondada:
. - Expoente
está dentro do intervalo. - Representação na máquina:
- Queremos três dígitos significativos: os dígitos iniciais são
- Para
. - Já tem exatamente três dígitos significativos
. Não há dígitos extras a considerar, logo é exato com . - Expoente
está no limite inferior, mas ainda permitido. - Representação na máquina:
- Já tem exatamente três dígitos significativos
- Para
. - A forma normalizada tem expoente
, que é menor que . - Isso significa que
é menor que o menor número normalizado positivo representável na máquina ( ). Se a máquina não tem subnormais (denormals), ocorre underflow e o valor é arredondado para (flush-to-zero). Portanto:
- A forma normalizada tem expoente
- Para
. - Mantissa com três dígitos: olhamos os primeiros três dígitos
e o próximo dígito é (menor que ), então arredondamos para baixo: mantissa . - O expoente necessário é
, mas está acima de . - Logo
excede o maior número representável ( ) e ocorre overflow. Em prática, isto é sinalizado como overflow (ou em modelos de ponto flutuante moderno resulta em ); em máquinas simples pode-se dizer “não representável (overflow)” ou, em alguns exames, aproximar pelo maior valor representável . Aqui vamos indicar que há overflow (não representável como número normalizado na máquina).
- Mantissa com três dígitos: olhamos os primeiros três dígitos
Resposta
(a)
(b) Na máquina com
,
,
:
(underflow; não representável como normalizado)