Exemplo 1: Converter 25,5 em binário

1ª Etapa: Transformar o número em algo parecido com 1,### x 2###

Isso é alcançado através de divisões ou multiplicações. No caso do exemplo, divisões, pois o número é menor do que 1.

Nesta etapa o sinal de negativo do número, caso exista, deve ser ignorado!

25,5 / 2 = 12,75
12,75 / 2 = 6,375
6,375 / 2 = 3,1875
3,1875 / 2 = 1,59375

Ao final desta etapa, obtemos R1 = 1,59375 através de 4 divisões.

Com isso, apenas encontramos outra forma de representar

25,5

que é

1,59375 x 24

2ª Etapa: Calcular a mantissa baseado na parte fracionária de R1

Esse processo se dá sempre através de multiplicações sucessivas, até que o resultado seja 0, ou até um máximo de 23 multiplicações.

Como R1 = 1,59375, logo, sua parte fracionária é 0,59375

0,59375 x 2 = 1,1875   (De uma etapa para a outra, leva-se apenas a parte fracionária!)
0,1875 x 2 = 0,375
0,375 x 2 = 0,75
0,75 x 2 = 1,5
0,5 x 2 = 1,0
0,0 x 2 = 0,0(Acabou!)

Mantissa calculada = 100110

Como a quantidade de bits da mantissa ficou inferior à 23, completa-se o final com 0's até formar 23 dígitos.

Mantissa final = 10011000000000000000000

3ª Etapa: Coletar as informações necessárias para criar a representação binária

- Sinal

Positivo = 0 (Se fosse negativo seria 1)

- Expoente

4 (Calculado na 1ª etapa)

Porém, devido ao padrão estabelecido pela IEEE para números de ponto flutuante, esse expoente deve ser acrescido de 127. Assim:

4 + 127 = 131 = 10000011

- Mantissa

10011000000000000000000 (Calculada na 2ª etapa)

4ª Etapa: Montar a representação binária

Basta juntar o sinal, o expoente e a mantissa coletados na 3ª etapa, para montar o valor de 32 bits que representa o valor inicial.

Assim, a representação final é:

01000001110011000000000000000000

Ou 01000001110011000000000000000000 (Sem a formatação de cores)

Exemplo 2: Converter 0,203125 em binário

1ª Etapa: Transformar o número em algo parecido com 1,### x 2###

Isso é alcançado através de divisões ou multiplicações. No caso do exemplo, multipicações, pois o número é menor do que 1.

Nesta etapa o sinal de negativo do número, caso exista, deve ser ignorado!

0,203125 x 2 = 0,40625
0,40625 x 2 = 0,8125
0,8125 x 2 = 1,625

Ao final desta etapa, obtemos R1 = 1,625 através de 3 multiplicações.

Com isso, apenas encontramos outra forma de representar

0,203125

que é

1,625 x 2 -3 (Repare que o expoente ficou negativo, pois o número era menor do que 1!)

2ª Etapa: Calcular a mantissa baseado na parte fracionária de R1

Esse processo se dá sempre através de multiplicações sucessivas, até que o resultado seja 0, ou até um máximo de 23 multiplicações.

Como R1 = 1,625, logo, sua parte fracionária é 0,625

0,625 x 2 = 1,25   (De uma etapa para a outra, leva-se apenas a parte fracionária!)
0,25 x 2 = 0,5
0,5 x 2 = 1,0
0,0 x 2 = 0,0(Acabou!)

Mantissa calculada = 1010

Como a quantidade de bits da mantissa ficou inferior à 23, completa-se o final com 0's até formar 23 dígitos.

Mantissa final = 10100000000000000000000

3ª Etapa: Coletar as informações necessárias para criar a representação binária

- Sinal

Positivo = 0 (Se fosse negativo seria 1)

- Expoente

-3 (Calculado na 1ª etapa)

Porém, devido ao padrão estabelecido pela IEEE para números de ponto flutuante, esse expoente deve ser acrescido de 127. Assim:

-3 + 127 = 124 = 01111100

- Mantissa

10100000000000000000000 (Calculada na 2ª etapa)

4ª Etapa: Montar a representação binária

Basta juntar o sinal, o expoente e a mantissa coletados na 3ª etapa, para montar o valor de 32 bits que representa o valor inicial.

Assim, a representação final é:

00111110010100000000000000000000

Ou 00111110010100000000000000000000 (Sem a formatação de cores)

Exemplo 3: Converter 11000001011010000000000000000000 em decimal

1ª Etapa: Extrair os campos

Para isso, basta dividir o número binário em três partes: sinal, expoente e mantissa.

Assim, dividindo o número 11000001011010000000000000000000 nas três partes, temos:

11000001011010000000000000000000

- Sinal

1 (1 significa negativo, se fosse 0, seria positivo)

- Expoente

10000010 (130 em decimal)

- Mantissa

11010000000000000000000

2ª Etapa: Calcular o expoente real

O expoente encontrado na 1ª etapa, devido ao padrão estabelecido pela IEEE para números de ponto flutuante, foi acrescido de 127 durante a conversão original, como foi feito nos outros exemplos de conversão de decimal para binário. Por isso, deve-se remover 127 do expoente encontrado para obter o expoente real.

Assim:

130 - 127 = 3

Expoente real = 3

3ª Etapa: Calcular o valor decimal da mantissa

Basta multiplicar cada bit da mantissa pela potência de 2 correnpondente àquela posição, e somar todos os resultados.

Esse método é análogo a alguns métodos de conversão de números binários (inteiros) para decimal, com uma diferença: aqui todas as potências são negativas, pois está se calculando uma fração e não um número inteiro.

O primeiro bit deve ser multiplicado por 2-1, o segundo por 2-2, o terceiro por 2-3, e assim por diante.

Lembrando:

2-1 = 1/21 = 1/2 = 0,5

2-2 = 1/22 = 1/4 = 0,25

2-3 = 1/23 = 1/8 = 0,125

...

 

Multiplicando:

1 x 2-1 = 0,5
1 x 2-2 = 0,25
0 x 2-3 = 0,0
1 x 2-4 = 0,0625
0 x 2-5 = 0,0  (Daqui em diante tem-se apenas 0's, logo não é necessário continuar)

Somando todos os resultados diferentes de 0, tem-se:

0,5 + 0,25 + 0,0625 = 0,8125

4ª Etapa: Montar a representação decimal

Basta juntar o sinal, o expoente e a mantissa, para montar o valor decimal na forma 1,### x 2###.

Assim, a representação final é:

-1,8125 x 23

Ou -1,8125 x 23 (Sem a formatação de cores)

Ainda, pode-se calcular a potência e a multiplicação...

-1,8125 x 23 = -1,8125 x 8 = -14,5

Exemplo 4: Converter 01000010001101000000000000000000 em decimal

1ª Etapa: Extrair os campos

Para isso, basta dividir o número binário em três partes: sinal, expoente e mantissa.

Assim, dividindo o número 01000010001101000000000000000000 nas três partes, temos:

01000010001101000000000000000000

- Sinal

0 (0 significa positivo, se fosse 1, seria negativo)

- Expoente

10000100 (132 em decimal)

- Mantissa

01101000000000000000000

2ª Etapa: Calcular o expoente real

O expoente encontrado na 1ª etapa, devido ao padrão estabelecido pela IEEE para números de ponto flutuante, foi acrescido de 127 durante a conversão original, como foi feito nos outros exemplos de conversão de decimal para binário. Por isso, deve-se remover 127 do expoente encontrado para obter o expoente real.

Assim:

132 - 127 = 5

Expoente real = 5

3ª Etapa: Calcular o valor decimal da mantissa

Basta multiplicar cada bit da mantissa pela potência de 2 correnpondente àquela posição, e somar todos os resultados.

Esse método é análogo a alguns métodos de conversão de números binários (inteiros) para decimal, com uma diferença: aqui todas as potências são negativas, pois está se calculando uma fração e não um número inteiro.

O primeiro bit deve ser multiplicado por 2-1, o segundo por 2-2, o terceiro por 2-3, e assim por diante.

Lembrando:

2-1 = 1/21 = 1/2 = 0,5

2-2 = 1/22 = 1/4 = 0,25

2-3 = 1/23 = 1/8 = 0,125

...

 

Multiplicando:

0 x 2-1 = 0,0
1 x 2-2 = 0,25
1 x 2-3 = 0,125
0 x 2-4 = 0,0
1 x 2-5 = 0,03125
0 x 2-6 = 0,0  (Daqui em diante tem-se apenas 0's, logo não é necessário continuar)

Somando todos os resultados diferentes de 0, tem-se:

0,25 + 0,125 + 0,03125 = 0,40625

4ª Etapa: Montar a representação decimal

Basta juntar o sinal, o expoente e a mantissa, para montar o valor decimal na forma 1,### x 2###.

Assim, a representação final é:

+1,40625 x 25

Ou +1,40625 x 25 (Sem a formatação de cores)

Ainda, pode-se calcular a potência e a multiplicação...

+1,40625 x 25 = 1,40625 x 32 = 45,0

Existem outros métodos para realizar essa conversão, e você está livre para pesquisá-los e utilizá-los, mesmo nas provas! ;)