MIN und MAX Werte für float32, float64 IEEE754

Design Patterns, Erklärungen zu Algorithmen, Optimierung, Softwarearchitektur
Forumsregeln
Wenn das Problem mit einer Programmiersprache direkt zusammenhängt, bitte HIER posten.
Antworten
Benutzeravatar
starcow
Establishment
Beiträge: 575
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Wohnort: Zürich
Kontaktdaten:

MIN und MAX Werte für float32, float64 IEEE754

Beitrag von starcow »

Zwecks persönlicher Grundlagenforschung habe ich versucht die Minimal- und Maximalwerte von float32, float64 im IEEE754 Format auszurechnen.
In gleich zwei Büchern weichen jedoch meine errechneten Werte von den abgedruckten ab.
Weil solche Werte bekanntlich von Autoren gelegentlich ohne zu prüfen abgeschrieben werden, will ich nicht ausschliessen, dass sie falsch sind.

In einem der Bücher wird vom "Wertebereich" geschrieben, obwohl dies ja eigentlich die negativen Zahlen miteinschliessen müsste (also einfach -MAX).
Meine Rechnerei der Min-Werte bezieht sich auf die kleinste positive Zahl.

Code: Alles auswählen

float32: 1Bit Vorzeichen, 8Bit Exponent, 23Bit Mantisse (Hidden-Bit nicht mitgezählt)
Max: (2 - 2^-23) * 2^127 = 3.40 * 10^38       (Bücher: 3.4 * 10^38 OK!)
Min (normalisiert): 2^-126 = 1.18 * 10^-38    (Bücher: 3.4 * 10^-38)
Min (denormalisiert): 2^(-126 - 23) = 1.40 * 10^-45

float64: 1Bit Vorzeichen, 11Bit Exponent, 52Bit Mantisse (Hidden-Bit nicht mitgezählt)
Max: (2 - 2^-52) * 2^1023 = 1.80 * 10^308       (Bücher: 1.7 * 10^308)
Min (normalisiert): 2^-1022 = 2.23 * 10^-308    (Bücher: 1.7 * 10^-308)
Min (denormalisiert): 2^(-1022 - 52) = 4.94 * 10^-324

(Ergebnisse sind auf 3 signifikate Stellen "kaufmännisch" gerundet)
Bei den Maximal-Werten könnte man noch falsches Runden vermuten. Die Minimal-Werte weichen aber zu stark ab.

Könnt ihr meine Rechnerei bestätigen?
Freelancer 3D- und 2D-Grafik
mischaschaub.com
Benutzeravatar
Jonathan
Establishment
Beiträge: 2636
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: MIN und MAX Werte für float32, float64 IEEE754

Beitrag von Jonathan »

Ich weiß ja nicht, was du für Bücher hast, aber zumindest Wikipedia scheint mit dir übereinzustimmen:

https://en.wikipedia.org/wiki/Single-pr ... sion_cases
https://en.wikipedia.org/wiki/Double-pr ... n_examples
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
starcow
Establishment
Beiträge: 575
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Wohnort: Zürich
Kontaktdaten:

Re: MIN und MAX Werte für float32, float64 IEEE754

Beitrag von starcow »

Oh, dass Wikipedia dies so ausführlich mit Rechenbeispielen abhandelt, hatte ich gar nicht erwartet! Danke Jonathan fürs Recherchieren und abgleichen!
Freelancer 3D- und 2D-Grafik
mischaschaub.com
Antworten