Seja \mathrm{F}\left(\beta, n, e_{\min }, e_{\max }\right) a representação de um sistema de ponto flutuante onde \beta é a base do sistema, n é o número de dígitos da mantissa e e_{\min } e e_{\max } são respectivamente o menor e o maior expoente.
Dado o sistema de ponto flutuante F(2,10,-15,16), obtenha a representação de número de ponto flutuante normalizado para os seguintes números:
(-7.125)_{10}

Passo 1

O enunciado pede para representar o número (-7,125)_{10} no sistema de ponto flutuante F(2,10,-15,16). Informações dadas:
  • base: \beta=2;
  • número de dígitos da mantissa: n=10 (isto significa que a mantissa normalizada terá exatamente 10 dígitos binários, com o primeiro dígito não nulo à esquerda da vírgula — em base 2 esse dígito deve ser 1);
  • menor expoente: e_{\min}=-15;
  • maior expoente: e_{\max}=16.
    O que se pede: escrever a representação normalizada em base 2 de (-7,125)_{10}, ou seja, escrever o número na forma
\pm d_1.d_2d_3\ldots d_{n} \times 2^{e}
com d_1\neq 0 e exatamente n dígitos na mantissa (a convenção que vamos usar é que os n dígitos incluem o dígito à esquerda da vírgula; portanto há n-1 dígitos após o ponto).

Passo 2

Converter a parte inteira 7_{10} para binário. Método (divisões sucessivas por 2):
  • 7 \div 2 = 3 resto 1
  • 3 \div 2 = 1 resto 1
  • 1 \div 2 = 0 resto 1
    Lendo os restos de baixo para cima obtém-se 7_{10} = 111_2. Portanto a parte inteira em binário é 111.

Passo 3

Converter a parte fracionária 0,125_{10} para binário. Método (multiplicações sucessivas por 2):
  • 0{,}125 \times 2 = 0{,}25 → parte inteira 0 (primeiro bit fracionário = 0);
  • 0{,}25 \times 2 = 0{,}5 → parte inteira 0 (segundo bit = 0);
  • 0{,}5 \times 2 = 1{,}0 → parte inteira 1 (terceiro bit = 1), e a fractional parte fica 0 e o processo termina.
    Portanto 0{,}125_{10} = 0{,}001_2 (isso também é óbvio porque 0{,}125 = 1/8 = 2^{-3}).

Passo 4

Combinar parte inteira e fracionária em binário:
7{,}125_{10} = 111{,}001_2.
Ou seja, em binário a representação exata é 111{,}001_2.

Passo 5

Normalizar a representação: mover a vírgula para que haja exatamente um dígito não nulo (em base 2, esse dígito é 1) à esquerda da vírgula. Para 111{,}001_2 escrevemos
111{,}001_2 = 1{,}11001_2 \times 2^{2},
pois deslocamos a vírgula duas posições para a esquerda (cada deslocamento para a esquerda corresponde a multiplicar por 2). Assim o expoente normalizado é e=2. Comentário didático: a forma normalizada em base \beta=2 exige d_1=1, então representações válidas têm aparência 1.d_2d_3\ldots \times 2^{e}.

Passo 6

Montar a mantissa com n=10 dígitos. A convenção adotada (comum em enunciados) é que os n dígitos incluem o dígito à esquerda da vírgula; portanto precisamos de n-1=9 dígitos após o ponto. A mantissa obtida pela normalização foi 1{,}11001_2. Escrevendo os próximos bits (se necessários) e completando até totalizar 10 dígitos (completando com zeros à direita, já que a expansão é finita), temos:
  • dígitos disponíveis após a vírgula: 11001 (cinco bits);
  • completar com zeros até 9 bits fracionários: 11001\;0000 (agora são 9 bits após a vírgula).
    Logo a mantissa com 10 dígitos é 1{,}110010000_2 (isto é, os dígitos, do primeiro ao décimo, são 1\,1\,1\,0\,0\,1\,0\,0\,0\,0). Não houve necessidade de arredondamento porque a expansão binária original era finita e coube exatamente ao completar com zeros.

Passo 7

Verificar o expoente na faixa permitida: e=2 está entre e_{\min}=-15 e e_{\max}=16, portanto é permitido. Também registrar o sinal: o número dado é negativo, então o sinal é -.

Resposta

-1{,}110010000_{2}\times 2^{2}

Exercícios relacionados