Ich habe viele Antworten gelesen, aber keine scheint richtig zu erklären, woher das Wort double kommt. Ich erinnere mich an eine sehr gute Erklärung eines Universitätsprofessors, den ich vor einigen Jahren hatte.
Unter Hinweis auf den Stil der Antwort von VonC verwendet eine Gleitkommadarstellung mit einfacher Genauigkeit ein Wort von 32 Bit.
- 1 Bit für das Zeichen , S.
- 8 Bits für den Exponenten 'E'
- 24 Bits für den Bruch , auch Mantisse oder Koeffizient genannt (obwohl nur 23 dargestellt sind). Nennen wir es 'M' (für Mantisse bevorzuge ich diesen Namen, da "Bruch" missverstanden werden kann).
Darstellung:
S EEEEEEEE MMMMMMMMMMMMMMMMMMMMMMM
bits: 31 30 23 22 0
(Nur um darauf hinzuweisen, das Vorzeichenbit ist das letzte, nicht das erste.)
Eine Gleitkommadarstellung mit doppelter Genauigkeit verwendet ein 64-Bit-Wort.
- 1 Bit für das Zeichen , S.
- 11 Bits für den Exponenten 'E'
- 53 Bits für den Bruch / die Mantisse / den Koeffizienten (obwohl nur 52 dargestellt sind), 'M'
Darstellung:
S EEEEEEEEEEE MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
bits: 63 62 52 51 0
Wie Sie vielleicht bemerken, habe ich geschrieben, dass die Mantisse in beiden Typen ein bisschen mehr Informationen enthält als ihre Darstellung. Tatsächlich ist die Mantisse eine Zahl, die ohne all ihre nicht signifikanten Zahlen dargestellt wird 0
. Beispielsweise,
- 0,000124 wird 0,124 × 10 –3
- 237,141 wird 0,237141 × 10 3
Dies bedeutet, dass die Mantisse immer in der Form sein wird
0.α 1 α 2 ... α t × β p
wobei β die Repräsentationsbasis ist. Da der Bruch jedoch eine Binärzahl ist, ist α 1 immer gleich 1, so dass der Bruch als 1 umgeschrieben werden kann. Α 2 α 3 ... α t + 1 × 2 p und die anfängliche 1 implizit angenommen werden kann, Platz für ein zusätzliches Bit schaffen (α t + 1 ).
Nun ist es offensichtlich wahr, dass das Doppel von 32 64 ist, aber daher kommt das Wort nicht.
Die Genauigkeit gibt die Anzahl der korrekten Dezimalstellen an , dh ohne Darstellungsfehler oder Annäherungen. Mit anderen Worten, es gibt an, wie viele Dezimalstellen sicher verwendet werden können.
Trotzdem ist es einfach, die Anzahl der Dezimalstellen zu schätzen, die sicher verwendet werden können:
- einfache Genauigkeit : log 10 (2 24 ), was ungefähr 7 ~ 8 Dezimalstellen entspricht
- doppelte Genauigkeit : log 10 (2 53 ), was ungefähr 15 ~ 16 Dezimalstellen entspricht