Zahlen sind in Java so wichtig, dass 6 der 8 primitiven Datentypen numerische Typen sind.
Sowohl Ganzzahlen (Integer) als auch Gleitpunktzahlen sind primitive Typen. Ganzzahlen haben keinen Dezimalteil; Gleitpunktzahlen haben einen Dezimalteil. Auf dem Papier haben Ganzzahlen keinen Dezimalpunkt und Gleitpunkttypen haben einen. Aber im Hauptspeicher gibt es keine Dezimalpunkte: selbst Gleitpunktwerte werden durch Bitmuster dargestellt.
Es gibt einen wesentlichen Unterschied zwischen der Methode, die verwendet wird, um ganze Zahlen darzustellen und der Methode, die verwendet wird, um Gleitpunktzahlen darzustellen.
Jeder primitive Typ verwendet eine feste Anzahl von Bits. Das bedeutet, wenn wir einen bestimmten Datentyp verwenden, dann wird immer die gleiche Anzahl von Bits verwendet, egal welcher Wert dargestellt wird.
Zum Beispiel werden alle Werte, die durch den Datentypshort
dargestellt werden, 16 Bit verwenden.
Der Wert 0
(als ein short
) wird 16 Bit verwenden und
der Wert Dreißigtausend wird 16 Bit verwenden.
Alle Werte, die durch den long
Datentyp dargestellt werden,
verwenden 64 Bit.
Der Wert 0
(als ein long
) wird 64 Bit verwenden,
der Wert Dreißigtausend wird 64 Bit verwenden
und der Wert Achtbillionen wird 64 Bit verwenden.
Sehr große Werte (negative oder positive) brauchen mehr Bits zum darstellen. Das ist ähnlich wie das Schreiben von Zahlen auf Papier: große Zahlen brauchen mehr Ziffern. Wenn ein Wert mehr Bits braucht, als ein bestimmter Datentyp verwendet, dann kann er nicht durch diesen Datentyp dargestellt werden.
In den Tabellen bedeutet E "zehn hoch". 3.5E38
bedeutet also 3.5 x 1038
Ganzzahlen — primitive Datentypen | ||
---|---|---|
Typ | Größe | Wertebereich |
byte | 8 Bit | -128 bis +127 |
short | 16 Bit | -32.768 bis +32.767 |
int | 32 Bit | (ca.) -2 Milliarden bis +2 Milliarden |
long | 64 Bit | (ca.) -9E18 bis +9E18 |
Gleitpunktzahlen — primitive Datentypen | ||
---|---|---|
Typ | Größe | Wertebereich |
float | 32 Bit | -3.4E38 bis +3.4E38 |
double | 64 Bit | -1.7E308 bis 1.7E308 |
Sagen wir, dass wir es in unserem Computerprogramm mit der Zahl 1.023.004 zu tun haben.
Würde der Datentyp short
eine geeignete Wahl sein?