Parte dos computadores utilizados para a resolução de problemas de Engenharia utilizam uma linguagem binária considerando uma cadeia de 64 bits. Sendo você um candidato a futuro engenheiro, mostre que você entende a linguagem usada pelo computador escrevendo o número decimal x=-12,345 numa representação em ponto flutuante na base 2.
Converta a mantissa para a base binária usando um número suficiente de algarismos de forma que o erro relativo real seja menor que 0,02

Passo 1

Então, o enunciado pede para a gente representar o número decimal
x = -12,345
num formato de ponto flutuante em base 2, usando um “word” de 64 bits (isto é, o mesmo esquema do IEEE 754 double).
Conteúdo que vamos usar:
  • Conversão de parte inteira e parte fracionária para binário.
  • Normalização no formato .
  • Cálculo do expoente com bias (no double, bias = 1023).
  • Escolha do número de bits de mantissa necessário para garantir erro relativo < 0,02.

Passo 2

Primeiro convertendo a parte positiva 12,34510 approx 1100.0101100ldots2 em binário:
  1. Parte inteira .
  2. Parte fracionária em binário:
    • → bit 0
    • → bit 1 (resto 0{,}38)
    • → bit 0
    • → bit 1 (resto 0{,}52)
    • → bit 1 (resto 0{,}04)
    • → bit 0
    • … e assim por diante.
      Logo

Passo 3

Agora normalizamos para a forma 1100.0101100ldots2 = 1.1000101100ldots2 times 2^3, .
pois deslocamos o ponto 3 posições para a esquerda.
  • O sinal é 1 (porque é negativo).
  • O expoente “despuro” é .

Passo 4

No formato IEEE 754 double temos:
  • 1 bit de sinal,
  • 11 bits de expoente com bias 1023,
  • 52 bits de mantissa (mas a gente só precisa usar tantos dígitos quantos forem necessários para erro relativo < 0,02).
Teoria do erro relativo: truncando ou arredondando uma mantissa com De bits depois do “1.”, o erro relativo máximo é aproximadamente
2^-(t+1)<0,02Longrightarrow t+1>log2l(tfrac10,02r)=log2(50)approx5,64
Queremos .
Logo .
Isto é, basta usar ao menos 5 bits de mantissa para ter erro relativo < 2 %.

Passo 5

Pegamos então os 5 primeiros bits depois do “1.” na nossa mantissa normalizada:
1underbrace100015 bitsdotstimes2^3
Arredondando (ou truncando) para 5 bits, a mantissa fica “10001”.
O expoente com bias = 102610 = 100000000102 .
Em binário de 11 bits:

Resposta

Montando os 64 bits (sinal|expoente|mantissa):
boxed 1;|;10000000010;|;1000100000000000000000000000000000000000000000000000
Aqui “10001” são os 5 bits efetivos de mantissa que garantem erro relativo < 0,02, e o resto preenche com zeros até 52 bits.

Exercícios relacionados