Dado o sistema de aritmética de ponto flutuante
, represente nele os seguintes números:
;
Passo 1
Beleza, o que a gente tem aqui é um sistema de ponto flutuante
F(2, 10, −15, 15), ou seja:
F(2, 10, −15, 15), ou seja:
- base β=2
- t=10 dígitos na mantissa
- expoentes vão de eₘᵢₙ=−15 até eₘₐₓ=15
E o desafio é representar o número decimal
nesse sistema.
Pra resolver a gente vai:
nesse sistema.
Pra resolver a gente vai:
- converter 2,345 pra binário;
- normalizar na forma
; - ajustar mantissa em 10 bits (arredondar);
- montar o sinal, o expoente e a mantissa final.
Passo 2
Primeiro, converte a parte inteira e a fracionária de 2,345 pra binário.
– Parte inteira: 2 →
.
– Parte fracionária: pega 0,345 e multiplica por 2 várias vezes, guardando a parte inteira:
– Parte fracionária: pega 0,345 e multiplica por 2 várias vezes, guardando a parte inteira:
Isso nos dá, nos primeiros 10 bits,
Logo
Passo 3
Agora normaliza pra forma
.
Temos
Temos
Então o expoente real é
.
Passo 4
A mantissa normalizada é
.
Pega os 10 bits logo após o ponto em
, ou seja:
Pega os 10 bits logo após o ponto em
O 11º bit seria 1? (na prática a gente vê que o bit 11 dá zero continuando a multiplicação), então não aumenta (round-to-nearest mesmo deu pra simplesmente truncar aqui).
Passo 5
Pra montar no formato interno:
- sinal
(número positivo) - expoente armazenado =
. O bias é geralmente =15, então
.
Em binário com 5 bits (porquevalores cabe em 5 bits):
. - mantissa de 10 bits = 0010110000.
Resposta
sinal | expoente (5 bits) | mantissa (10 bits)
0 | 10000 | 0010110000
0 | 10000 | 0010110000
e em notação matemática: