Wirtschaftsinformatik (Bachelor-Studiengang): Programmierung (1. Semester)

Sie sind hier: StartseiteWirtschaftsinformatikProgrammierung Java (Kurs 1): Datentypen

HB / CM, Kurs vom 01.04.2002 - 30.09.2002

Programmierung Java (Kurs 1): Datentypen: Datentypen (Datentypen allgemein, Ganzzahlige Datentypen, Ganzzahlige Konstanten, Gleitkommadatentypen).

Datentypen

Datentypen allgemein

Datentypen

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:

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:

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:

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:

Quelltext überspringen

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:

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:

  1. '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!
  2. '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)
  3. '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.

Quelltext überspringen

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.

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:

  1. ohne Dezimalpunkt:
    Sie muss dann in sog. wissenschaftlicher Darstellung (Exponentialform) angegeben werden.
    • 7e2 (= 700)
    • 1e-1 (= 0,1)
    • 23e-3 (= 23 × 10-3)
    Im Exponenten kann auch ein + vorkommen:
    • 3e+1 (= 30)
  2. mit Dezimalpunkt:
    Man unterscheidet in zwei Fälle:
    • vor dem Dezimalpunkt stehen Ziffern
    • nicht
    In beiden Fällen kann die Konstante sowohl in "normaler" als auch in wissenschaftlicher Darstellung angegeben werden.

    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.