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 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
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 em binário:
Parte inteira .
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 .
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 bits depois do “1.”, o erro relativo máximo é aproximadamente
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:
Arredondando (ou truncando) para 5 bits, a mantissa fica “10001”.
O expoente com bias = 102610 = 100000000102 .
Em binário de 11 bits: