A maneira mais fácil de converter manualmente uma flutuação decimal em representação de bits com base no IEEE 754, sem usar nenhuma biblioteca

Eu sei que existem inúmeras maneiras de ler todos os bits de um flutuador IEEE 754 usando bibliotecas escritas.

Eu não quero isso e quero podermanualmente converta uma flutuação decimal em representação binária com base na IEEE 754.

Entendo como o IEEE 754 funciona e só estou tentando aplicá-lo.

Eu faço essa pergunta aqui, só quero ver se meu caminho é normal ou estúpido e também estou me perguntando como o PC faz isso rapidamente.

Se eu receber um número decimalem uma string, Preciso descobrir qual é oE é e qual é oM é.

obter as duas partes: parte inteirai e parte da fraçãof.

Lide comf. Eu constantementemultiple 2 e obtenha a parte inteira (0 ou 1) e remova a parte inteira e repita até que se torne 0

converteri em bits. Isso é fácil, eu apenas constantementemod 2 ediv 2 para obter todos os bits dei.

por exemplo, para converterf parte

0,390625 * 2 = 0,781250
0,78125 * 2 = 1,56251
0,5625 * 2 = 1,1251
0,125 * 2 = 0,250
0,25 * 2 = 0,50
0,5 * 2 = 11
0

Nesse caso, os bits de tempo de0.390625 é0 1 1 0 0 1.

Agora, eu tenho os bits parai e paraf.

Se todos os bits parai é 0, então em bits def Eu deslizo até a primeira1 se foi, de acordo com odefault hidden 1 doM. eu receboM, dê o valor de mudar para E, considerandoEé a linha de base, é claro.

E sei não é 0, concatenarei a parte dos dois bits e calculo quantos shift_right preciso fazer para que os bits concatenados sejam 1 e, em seguida, forneço esse valor paraE

Eu acho que todos os meus passos não estão errados. Mas eu sinto isso muito problemático.

Existe uma maneira fácil e limpa?

Como o PC faz isso?

questionAnswers(2)

yourAnswerToTheQuestion