2.10.2 | Die Ganzzahltypen |
Die Ganzzahltypen von Java sind grundsätzlich vorzeichenbehaftet. Den Zusatz unsigned wie in C gibt es in Java nicht. Daher ist es auch nicht möglich, eine Variable vorzeichenlos interpretieren zu lassen. In Tabelle 2.3 sind alle Integer-Typen von Java aufgeführt. Die Längen der einzelnen Typen gelten plattformunabhängig.
Tabelle 2.3: Integer-Typen von Java Typ Wertebereich Länge byte -128..127 8 Bit short -32768..32767 16 Bit int -2147483648..2147483647 32 Bit long -9223372036854775808..9223372036854775807 64 Bit Tabelle 2.4 zeigt die für die Integer-Typen definierten Operatoren.
Tabelle 2.4: Operatoren für Integer-Typen Operator Bedeutung Art Ass. ==, != Gleichheit, Ungleichheit binär L <,<=,>,>= Vergleich binär L +,- Vorzeichen unär R +,- Addition, Subtraktion binär L *,/ Multiplikation, Division binär L % Modulo binär L ++,-- Inkrement/Dekrement unär R <<,>> Vorz.-erhaltender Links/Rechts-Shift binär L >>> Vorz.-ignorierender Rechts-Shift binär L ~ Bitweise Negation unär L & Bitweises Und binär L | Bitweises Oder binär L ^ Bitweises Exklusiv-Oder binär L Zusätzlich gibt es die in Tabelle 2.5 aufgeführten Zuweisungsoperatoren. Zuweisungsoperatoren werden benutzt, wenn dem ersten Operand auch das Ergebnis der Operation zugewiesen wird. Sie sparen Tipparbeit und gestalten den Code lesbarer. Zuweisungsoperatoren sind grundsätzlich rechts-assoziativ.
int a, b; final int BITMASKE = 16; a += 2; // Erhöht den Wert von a um 2 b |= BITMASKE; // Setzt das vierte Bit in b
Tabelle 2.5: Zuweisungs-Operatoren für Integer-Typen Operator Bedeutung Ass. +=,-= Addition/Subtraktion R *=,/= Multiplikation/Division R <<=,>>= Vorz.-erhaltender Links/Rechts-Shift R >>>= Vorz.-ignorierender Rechts-Shift R %= Modulo R &= Bitweises Und R |= Bitweises Oder R ^= Bitweises Exklusiv-Oder R
Integer-Literale können dezimal, hexadezimal sowie oktal angegeben werden. Hexadezimale Literale beginnen mit der Sequenz 0x oder 0X. Oktale Literale haben eine führende Null. Per Voreinstellung haben Integer-Literale den Typ int. Es ist jedoch möglich, durch Anhängen von l oder L explizit den Typ long zu wählen. Bei Literalen, die den Wertebereich von int überschreiten, muss dies sogar erfolgen. Die folgende Tabelle zeigt einige gültige Literale.
Tabelle 2.6: Integer-Literale Literal Dezimalwert Typ 123 123 int 0123 83 int 077L 63 long 0x077l 119 long 0xbadFace 195951310 int