Zahlenbereiche
How To ...
Wie wähle ich den richtigen Datentyp für einen bestimmten Zahlenbereich?
Hintergründe
Java kennt für ganzzahlige Werte die Datentypen byte, short, int und long, für gebrochene Werte die Datentypen float und double.
So geht's
Java kennt nur vorzeichenbehaftete ganze Zahlen und nicht, wie etwa C und C++ das Schlüsselwort unsigned. Die Typen byte, short, int und long werden durch 8, 16, 32 und 64 Bits dargestellt, so dass sich die Zahlenbereiche wie in der folgenden Tabelle dargestellt ergeben.
| Typ | Größe | Bereich | Default-Wert |
|---|---|---|---|
| byte | 8 Bits | -128 bis 127 | 0 |
| short | 16 Bits | -32768 bis 32767 | 0 |
| int | 32 Bits | -2147483648 bis 2147483647 | 0 |
| long | 64 Bits | -9223372036854775808 bis 9223372036854775807 | 0 |
Ganzzahlige Literale sind nach der Sprachdefinition immer vom Typ int. Wird dem Literal ein l oder L am Ende angefügt, so ist das Literal vom Typ long.
Beginnt das Literal mit einer 0, so wird das Literal als oktaler Wert (Ziffern 8 und 9 sind verboten) interpretiert. Beginnt das Literal mit 0x, so wird das Literal als hexadezimaler Wert (mit zusätzlichen Ziffern A bis F) interpretiert.
byte b = 11;
short s = 1111;
int i = 111111;
long l = 1111111111111L;
In obigem Beispiel sind die ersten drei Literale vom Typ int. Diese werden jedoch in den ersten beiden Zeilen automatisch in ein byte bzw. short konvertiert. Einzelheiten um automatischen Konvertieren finden Sie in Typkonvertierungen. Das vierte Literal ist durch das Anfügen des L ein long-Literal.
