Hallo zusammen
Ich soll die maximal Länge der Mantisse einer Gleitkommazahl bestimmen. Als Beispiel nehme ich einfach mal den Typ float. Gemäss IEEE 754 müsste die Mantisse ja die Länge 23 haben, folgender Code liefert mir aber Zahlen mit 24 Nachkommastellen. Frage: Wo ist mein Überlegungsfehler?
Alles anzeigen
Die Grenze max_bit ist eine Vorgabe. Folgend die Ausgabe:
Alles anzeigen
Danke für eure Hinweise. Ich bin erst morgen wieder zu Hause und weiss nicht, ob ich vorher auf Antworten reagieren kann.
Ich soll die maximal Länge der Mantisse einer Gleitkommazahl bestimmen. Als Beispiel nehme ich einfach mal den Typ float. Gemäss IEEE 754 müsste die Mantisse ja die Länge 23 haben, folgender Code liefert mir aber Zahlen mit 24 Nachkommastellen. Frage: Wo ist mein Überlegungsfehler?
Quellcode
Die Grenze max_bit ist eine Vorgabe. Folgend die Ausgabe:
Quellcode
- 1 0.5 0.5
- 2 0.25 0.75
- 3 0.125 0.875
- 4 0.0625 0.9375
- 5 0.03125 0.96875
- 6 0.015625 0.984375
- 7 0.0078125 0.9921875
- 8 0.00390625 0.99609375
- 9 0.001953125 0.998046875
- 10 0.0009765625 0.9990234375
- 11 0.00048828125 0.99951171875
- 12 0.000244140625 0.999755859375
- 13 0.0001220703125 0.9998779296875
- 14 6.103515625e-05 0.99993896484375
- 15 3.0517578125e-05 0.999969482421875
- 16 1.52587890625e-05 0.9999847412109375
- 17 7.62939453125e-06 0.99999237060546875
- 18 3.814697265625e-06 0.999996185302734375
- 19 1.9073486328125e-06 0.9999980926513671875
- 20 9.5367431640625e-07 0.99999904632568359375
- 21 4.76837158203125e-07 0.999999523162841796875
- 22 2.384185791015625e-07 0.9999997615814208984375
- 23 1.1920928955078125e-07 0.99999988079071044921875
- 24 5.9604644775390625e-08 0.999999940395355224609375
- 25 2.98023223876953125e-08 1
- 26 1.490116119384765625e-08 1
- 27 7.450580596923828125e-09 1
- 28 3.7252902984619140625e-09 1
- 29 1.86264514923095703125e-09 1
- 30 9.31322574615478515625e-10 1
- 31 4.656612873077392578125e-10 1
- 32 2.3283064365386962890625e-10 1
- 33 1.16415321826934814453125e-10 1
- 34 5.82076609134674072265625e-11 1
- 35 2.910383045673370361328125e-11 1
- 36 1.4551915228366851806640625e-11 1
Danke für eure Hinweise. Ich bin erst morgen wieder zu Hause und weiss nicht, ob ich vorher auf Antworten reagieren kann.