Wirtschaftsinformatik (Bachelor-Studiengang): Programmierung (1. Semester)
Sie sind hier: Startseite › Wirtschaftsinformatik › Programmierung Java (Kurs 1): Datentypen
HB / CM, Kurs vom 01.04.2002 - 30.09.2002
Datentypen
Datentypen allgemein
Bildbeschreibung "Datentypen": Es gibt
primitive Datentypen und Referenzdatentypen (Array, Klassen, Interfaces,
null-Datentyp). Bei den primitiven
Datentypen wird noch eine Absplittung der numerischen Datentypen
vorgenommen. Diese wiederum sind unterteilbar in ganzzahlige
Datentypen (byte, short, int, long,
char
) und Gleitkomma-Datentypen (float, double
). Neben den
numerischen
Datentypen gibt es in der Kategorie der primitiven Datentypen noch
den Typ boolean
.
Ganzzahlige Datentypen
byte
:
8 Bits = 1 Byte
Zahlenbereich von (- 27) - 128 bis + 127
(27 -1)
short
:
16 Bits = 2 Byte
Zahlenbereich von (- 215) - 32.768 bis + 32.767
(215-1)
int
:
32 Bits = 4 Byte
Zahlenbereich von (- 231) - 2.147.483.648 bis
+ 2.147.483.647 (231-1)
long
:
64 Bits = 8 Byte
Zahlenbereich von (- 263) - 9.223.372.036.854.775.808
bis + 9.223.372.036.854.775.807 (263-1)
Hinweis: Dienen zum Speichern von ganzen Zahlen. Ganze Zahlen werden immer nach dem Zweierkomplement-Verfahren mit Vorzeichen gespeichert.
Ganzzahlige Konstanten
Können auf drei verschiedene Arten angegeben werden:
- im Dezimalsystem
- im Oktalsystem
- im Hexadezimalsystem
Ganzzahlige Konstanten (in Java) sind immer positiv.
Dezimalsystem:
Im Dezimalsystem besteht eine ganzzahlige Konstante aus einer
Folge der Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, die mit einer
Ziffer ≠ 0 anfangen muss.
Ausnahme: 0 selber
Beispiele, die zeilenweise denen der beiden anderen Systeme entsprechen:
- 0
- 2304
- 79013460
Oktalsystem:
Im Oktalsystem beginnt eine Konstante immer mit 0. Danach muss mindestens eine der Ziffern 0, 1, 2, 3, 4, 5, 6, 7 folgen.
Beispiele, die zeilenweise denen der beiden anderen Systeme entsprechen:
- 00
- 004400
- 0455323124
Hexadezimalsystem:
Im Hexadezimalsystem beginnt eine Konstante immer mit einer
Kombination von zwei Zeichen (mit 0x
oder
0X
). Danach müssen mindestens eine oder mehrere der
Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
folgen.
Beispiele, die zeilenweise denen der beiden anderen Systeme entsprechen:
0x0
0x900
0x4b5a654
Java-Beispiel:
class Demo3
{
public static void main(String[] args)
{
int x;
int y;
int z;
x = 111;
y = 0336; //entspricht der 222 im
Dezimalsystem
z = 0x14d; //entspricht der 333 im
Dezimalsystem
System.out.println("x -->" +x); //Ausgabe 111
System.out.println("y -->" +x); //Ausgabe 222
System.out.println("z -->" +x); //Ausgabe 333
System.out.println("x+y+z -->" +(x+y+z)); //Ausgabe 666
}
}
Unabhängig davon, ob eine Konstante im Dezimal-, Oktal-
oder Hexadezimalsystem angegeben wird, ist ihr Datentyp immer
int
.
Die größte zulässige Konstante ist also
231 - 1 = 2147483647 (dezimal) = 017777777777
(oktal) = 0x7fffffff
(hexadezimal).
Hinweis: Erscheint eine größere Konstante, dann kommt es zu einem Fehler!
Ausnahme: Wenn ein Minus davorsteht, darf auch
231 vorkommen.
231 = 020000000000 = 0x8000000
Durch Anfügen von "L" oder
"l" wird dem Compiler mitgeteilt, dass der Datentyp
long
sein soll.
Beispiel:
2340L
(dezimal)00L
0x4b5a654L
Ganzzahlige Konstanten mit Suffix L dürfen bis zu 263 - 1 groß sein.
Long-Suffix L oder l kann auch bei oktalen oder hexadezimalen Konstanten angefügt werden.
Formal gehört der Datentyp char
zu den
ganzzahligen Datentypen. Er dient aber nicht
zum Speichern von Zahlen, sondern zum Speichern von Zeichen
des Unicode-Zeichensatzes.
Zum Speichern von Werten des Typs char
werden 16 Bits (= 2
Byte) benutzt.
Hinweis: Es gibt 216 = 65536 verschiedene Bitmuster.
Anders als bei short
wird das höchstwertige Bit
nicht als Vorzeichenbit interpretiert.
Es fließt in die Berechnung des Wertes ein, so dass die Werte 0 bis 65535 auftreten können.
Die Konstanten des Datentyps char können im Programmtext auf drei verschiedene Weisen angegeben werden:
- 'druckbares Zeichen'
Es darf nur ein Zeichen zwischen den Hochkommas stehen. Zulässig sind alle einzelnen Zeichen, die über die Tastatur eingegeben werden können.
Ausnahme: Einfaches Hochkomma (') und Backslash (\) sind nicht zulässig! - 'Unicode-Zeichen'
Unicode-Zeichen werden in der Form\uxxxx
angegeben, wobei jedes x für eine Hexadezimalziffer steht. Es darf nur ein Unicode-Zeichen angegeben werden. Zulässig sind alle Zeichen außer
"\u000d"
(ASCII - carriage return),
"\u000a"
(ASCII - Linefeed),
"\u0027"
('),
"\u005c"
(\)
Beispiel:
'\u00ae'
(entspricht «);
'\u0041'
(entspricht A);
'\u0007'
(entspricht einem piiiiep) - 'Escape-Sequenz'
- vordefinierte Escape-Sequenzen:
\b
(Backspace),
\t
(horizontaler Tabulatorschritt),
\n
(Linefeed, Zeilenvorschub; Ersatz für'\u000a'
),
\f
(formfeed, Seitenvorschub),
\r
(carriage return; Ersatz für'\u000d'
),
\"
,
\'
(Ersatz für'\u0027'
),
\\
(Ersatz für'\u005c'
). - oktale Escape-Sequenzen:
Die oktalen Escape-Sequenzen können in den Formen\x, \xx oder \yxx
dargestellt werden, wobei
x eine Oktalziffer und
y eine 0, 1, 2 oder 3.
- vordefinierte Escape-Sequenzen:
Java-Beispiel:
class Demo4Main
{
public static void main(String[] args)
{
hallo1(); //Zeichenkonstante als druckbare Zeichen
hallo2(); //Zeichenkonstante als Unicode-Zeichen
hallo3(); //Zeichenkonstante als oktale Escape-Sequenzen
hallo4(); //mit Tabulatoren
hallo5(); //
... //...Fortsetzung folgt...
Gleitkommadatentypen
float
und double
dienen zum
Speichern reeller Zahlen.
float
: einfache Genauigkeit (auf 6 Stellen genau)double
: doppelte Genauigkeit (auf 10 Stellen genau)
Gespeichert wird nach dem IEEE-Standard 754 (1985).
Hinweis: Beim Umgang mit reellen
Zahlen schummeln Rechner fast immer!
» Aus der Mathematik bekannte
Gesetze brauchen für Gleitkommazahlen nicht zu gelten
Beispiel:
a × (b + c) ≠ ab + ac)
Gleitkommakonstanten können auf 2 verschiedene Arten angegeben werden:
- ohne Dezimalpunkt:
Sie muss dann in sog. wissenschaftlicher Darstellung (Exponentialform) angegeben werden.- 7e2 (= 700)
- 1e-1 (= 0,1)
- 23e-3 (= 23 × 10-3)
- 3e+1 (= 30)
- mit Dezimalpunkt:
Man unterscheidet in zwei Fälle:- vor dem Dezimalpunkt stehen Ziffern
- nicht
Hinweis: Beim ersten Fall können Ziffern nach dem Dezimalpunkt stehen, beim zweiten müssen!
Alle Gleitkommakonstanten haben den Datentyp double
.
Durch Anhängen des float
-Suffix f oder F ist es möglich,
den Datentyp float
zu
erzwingen.
Beispiel: 7E2F; 0.001F; .001f
Der Datentyp boolean
dient zum
Speichern von true
bzw. false
(vordefinierten
Zeichen).
Mit boolean
wird die Aussagenlogik umgesetzt.