Die einfachste Methode zum manuellen Konvertieren eines dezimalen Gleitkommas in eine Bitdarstellung basierend auf IEEE 754, ohne eine Bibliothek zu verwenden
Ich weiß, dass es zahlreiche Möglichkeiten gibt, jedes Bit eines IEEE 754-Floats mit geschriebenen Bibliotheken zu lesen.
Das will ich nicht und das will ich könnenmanuell Konvertieren eines dezimalen Gleitkommas in eine Binärdarstellung basierend auf IEEE 754.
Ich verstehe, wie IEEE 754 funktioniert, und versuche nur, es anzuwenden.
Ich stelle diese Frage hier nur, um zu sehen, ob mein Weg normal oder dumm ist und ich frage mich auch, wie PC es schnell macht.
Wenn ich einen dezimalen Gleitkomma erhaltein einer ZeichenfolgeIch muss herausfinden, was das istE ist und was dieM ist.
Holen Sie sich die beiden Teile aus: Integer-Teili
und Bruchteilf
.
Zurecht kommenf
. Ich ständigmultiple 2
Holen Sie sich den ganzzahligen Teil (entweder 0 oder 1), entfernen Sie den ganzzahligen Teil und wiederholen Sie den Vorgang, bis er zu 0 wird
Konvertiereni
zu Bits. Das ist einfach ich gerade ständigmod 2
unddiv 2
um alles zu bekommeni
.
zum Beispiel zu konvertierenf
Teil
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
In diesem Fall werden die Temparay-Bits von0.390625
ist0 1 1 0 0 1
.
Jetzt habe ich die Bits füri
und fürf
.
Wenn alle Bits füri
ist 0, dann auf Bits vonf
Ich habe es bis zum ersten verlegt1
ist nach dem wegdefault hidden 1
vonM
. Ich bekommeM
Geben Sie dann den Wert für die Verschiebung nach E unter Berücksichtigung von anE
's Grundlinie natürlich.
Wenni
ist nicht 0, dann verkette ich beide Bits und berechne, wie viele shift_right ich tun muss, um die verketteten Bits auf 1 zu setzen, und gebe dann diesen Wert anE
Ich denke alle meine Schritte sind nicht falsch. Aber ich fühle es sehr mühsam.
Gibt es einen einfachen und sauberen Weg?
Wie macht der PC das?