Zitat von
BlackSpike666
Erstmal vielen Dank für deine Antwort und die Erklärung!
Keine Ursache!
Zitat von
BlackSpike666
Hört sich für mich auch schlüssig an, aber leider ist die Antwort a) falsch ;(
So kann ich dir nicht wirklich weiterhelfen. Du müsstest die Aufgabe schon etwas genauer widergeben.
Geht es nur um normalisierte Zahlen? Oder sollen, wie Leange anmerkte, -0 und +0 als die selben Zahlen betrachtet werden? Also nocheinmal die verschiedenen Arten von Zahlen des IEEE 754:
Code:
2 Null // 2 [Vorzeichen] * 1 [Exponent = 0] * 1 [Mantisse = 0] = 2
2 Inf // 2 [Vorzeichen] * 1 [Exponent = 0xFF] * 1 [Mantisse = 0] = 2
16.777.214 NaNs // (2 [Vorzeichen] * 1 [Exponent = 0xFF] * 2²³ [Mantisse] ) - 2 [Mantisse != 0] = 16777214
16.777.214 denormalisierte Zahlen // (2 [Vorzeichen] * 1 [Exponent = 0] * 2²³ [Mantisse]) - 2 [Mantisse != 0] = 16777214
4.261.412.864 normale Zahlen // 2 [Vorzeichen] * (2⁸ [Exponent] - 2 [Exponent != 0 && Exponent != 0xFF]) * 2²³ [Mantisse] = 4261412864
In den eckigen Klammern ist jeweil die Beschreibung. So komme ich auf die Antwort die ich gegeben habe:
Code:
Nullen denorm. Z. norm. Zahlen
2 + 16777214 + 4261412864 = 4278190080
--
Was tatsächlich falsch ist war meine Aussage von oben:
Die Genauigkeit der darstellbaren Zahlen ist dort allerdings höher.
Richtig ist: Das IEEE 754 Format hat eine größere Reichweite, da die Abstände zwischen den einzelnen Zahlen nicht konstant sind (das gleitende Komma).
Als tradeoff muss man dann allerdings, wenn eine Zahl nicht im IEEE 754 Format darstellbar ist, runden und verliert damit Genauigkeit.
Das ist auch der Grund warum es das Format mit einfacher und mit doppelter Genauigkeit gibt.
Zitat von
BlackSpike666
Zur b) die ist natürlich richtig, hätte man auch selbst drauf kommen können