Zuerst müssen wir lernen, wie die Zahl als Float Point und Double im Speicher dargestellt wird.
Die allgemeine Nummer hat die Form: 1.M * 2^e.
(wo die M Mantisse und die E genannt wird, ist der Exponent in dem Überschuss-127)
In Gleitkommazahl
Das MSB (Most Significant Bit) wird als Vorzeichenbit verwendet, und die Bitnummer von 23 bis 31 wird für den Exponentialwert in Form von Überschuß 127 verwendet, und die Bitnummer von 0 bis 30 wird zum Speichern der Mantisse verwendet.
In Doppel
das MSB (Most Significant Bit) wird als Vorzeichenbit und die Bitnummer 52 bis 63 verwendet, für den exponentiellen Wert in Form von überschüssigen-127 verwendet wird, und die Bitanzahl von 0 bis wird zum Speichern der Mantisse verwendet.
so jetzt sind wir in der Lage, die NaN, Infinity-Darstellung im Float oder Double zu verstehen.
NaN (Nicht ein Number)
In der Darstellung des NaN alle Exponent Bits 1 und die Mantisse Bits alles sein kann und es keine Rolle spielt, dass es in float oder dezimal ist.
Unendlich
In der Darstellung der Unendlichkeit aller Exponentenbits sind 1 und die Mantisse Bits 0 sind, und es keine Rolle spielt, dass es in Schwimmers oder Dezimalzahl ist. Die positive Unendlichkeit ist nur durch gleiche darstellen wie oben, aber der Vorzeichen-Bit 0 und die negative Unendlichkeit auch durch gleiche gerade dargestellt wird, aber der Vorzeichen-Bit ist hier 1.
Es ist in der konstanten Beschreibung geschrieben '0xfff0000000000000L = -Infinity',' 0x7ff0000000000000L = + Infinity' und '0x7ff8000000000000L = NaN'. (Das sind die Werte für Doppel) – SomeJavaGuy
es ist in der Javadoc – wero
dokumentiert Negative Null existiert eigentlich auch als eine separate Sache. – harold