
(Lizenz)
Ganzzahlige Datentypen
| Datentyp | Bits | Wertebereich | Wertebereiche | Konstante min. | Konstante max. |
|---|---|---|---|---|---|
| byte | 8=1 byte | -27 bis 27-1 | -128 bis +127 | ||
| short | 16=2 byte | -215 bis 215-1 | -32768 bis +32767 | ||
| int | 32=4 byte | -231bis 231-1 | -2147483648 bis +2147483647 | ||
| long | 64=8 byte | -263 bis 263-1 | −9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 |
Die maximalen und minimalen Werte der Ganzzahltypen ergeben sich aus der Anzahl der Bits und der internen binären Präsentation. Dies ist am Beispiel des 8-Bit Typen Byte aufgeführt:

Java verwendet für die Darstellung negativer Ganzzahlen das Zweierkomplement. Der Vorteil des Zweierkomplement besteht in der einfacheren Implementierung von Arithmetikeinheiten in Prozessoren. Durch das Zweierkomplement kann das Vorzeichenbit bei Additionen und Subtraktion wie ein regulärers Bit des Wertebereichs behandelt werden.
Dies kann man gut am Beispiel der Zahl -1 erkennen. Addiert man zur Zahl -1 (Binärdarstellung 11111111) eine 1 (Binärdarstellung 00000001) so ergibt durch den Übertrag eine 0 (Binärdarstellung 00000000).
|
Das Applet zur Rechten ist in der Lage alle Ganzzahltypen in die Binärdarstellung umzuwandeln. Das Vorzeichenbit wird in Rot dargestellt. Bei allen Typen die mehr als 16 Bit erfordern wird die Ausgabe nach 16 Bit umgebrochen. Das Bit mit der höchsten Ordnung wird zuerst ausgegeben. Das Bit mit der niedrigsten Ordnung wird am Ende ausgegeben. Hinweis: Der Typ "char" ist ein Zahlentyp. Man muss jedoch genau ein beliebiges Zeichen (Buchstabe) im Eingabefenster eingeben. Der Type char unterscheidet sich vom Typ short nur in der Benutzereingabe. |
|
Fließkomma-Standarddatentypen
Die Zahlendarstellung der Fließkommazahlen geschieht nach der Norm IEEE 754 getrennt nach Bits für Vorzeichen (V), Mantisse und Exponent mit unterschiedlicherAnzahl von Bits abhängig vom Typ nach der Regel
z= (-1)V*Mantisse*2Exponent
| Datentyp | Bits | V (bits) |
Mantisse (bits) |
Exponent (bits) |
Zahlenbereich | Dezimalstellen in Mantisse |
|---|---|---|---|---|---|---|
| float | 32=4 Byte | 1 | 23 | 8 | ≈-3.4*1038 bis +3,4*1038 | 7 |
| double | 64=8 Byte | 1 | 52 | 11 | ≈-1.7*10308 bis +1.7*10308 | 15 |
Die Minimal- und Maximalwerte als Konstanten können über die Attribute MIN_VALUE und MAX_VALUE der Klassen Float und Double abgerufen werden.
|
Die Berechnung der dezimalen Werte ist für den menschlichen Betrachter nicht so einfach wie die Umwandlung von Ganzzahlen.
Der IEEE 754 Standard ist recht anschaulich in Wikipedia beschrieben. Eine 32 Bit Fließkommazahl berechnet sich nach IEEE 754 wie folgt: = (-1)Vorzeichen*2(Exponent-127)*Mantisse |
Für den 32 Bit Typ float ergibt sich so nach dem Standard IEEE 754 das folgende Bitmuster für verschiedene Werte:
|
|
Das Applet zur Rechten ist in der Lage 32 Bit Fließkommazahlen in die Binärdarstellung umzuwandeln. Die Knöpfe auf der echten Seite erlauben die Eingabe von Extremwerten wie
|
|
Wahrheitswerte
| Datentyp | Bits | Wertebereich | Werte | Konstante |
|---|---|---|---|---|
| boolean | 8 | wahr oder falsch | true,false | Boolean.FALSE, Boolean.TRUE |
Zeichen
Einzelne Zeichen werden in Java wie ganze Zahlen vom Typ short behandelt. Man kann auf den Typ char alle Operationen anwenden die auch für Zahlen erlaubt sind. Der wesentliche Unterschied zum Typ short besteht in der Eingabe und Ausgabe. Hier werden lexikalische Zeichen ein- oder ausgegeben.
| Datentyp | Bits | Wertebereich | Werte | Kommentar |
|---|---|---|---|---|
| char | 16 | UC='\u0000' bis '\uffff' | 16 Bit Unicode 4.0 Basic Multilingual Plane (BMP) | "supplementary character" Unterstützung seit JDK 1.5 |

