Original geschrieben von Morag
Ich häng mal nen Proggi an, um die Zahl vor dem Komma eines beliebig langen floats in einen String in Binärschreibweise umzuwandeln. Die Lösung ist wahrscheinlich nicht die elegantest, aber ich wollt da jetzt auch nicht allzulange drueber nachdenken.
Ich denke das proggi so zu erweitern, das man die Zahl nach dem Komma noch umwandeln kann, ist trivial.
Den Nachkommateil in binär umzuwandeln geht NICHT, indem man die Zahl hinterm Komma in binär umgewandelt nimmt.
Beispiel:
0.3
3 ist binär II
0.II ist aber:
1 * 1/(2^0) + 1 * 1/(2^1) = 1/2 + 1/4 = 3/4 = 0.75
0.75 ungleich 0.3
Ein Nachkommateil aus n Ziffern hat in einem Zahlensystem mit Basis b den Wert von
(Nachkommateil als Zahl) / (b^n)
Beispiele:
(dezimal) 0.58 = 58 / 10^2 = 58 / 100
(binär) 0.OIOII = OIOII / 2^5 = OIOII / 32 = 10/32
Daraus geht auch hervor, wie man den Nachkommateil konvertieren kann.
Hmm, was aber eigentlich doch einfach ist

if dez>= 0.5 {Erstebinärkommastelle=I dez-= 0.5 } ansonsten Erstebinärkommastelle=O
if dez>= 0.25 {Zweitebinärkommastelle=I dez-= 0.25 } ansonsten Zweitebinärkommastelle=O
...