zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Nicht in diesem Beispiel. Aber manchmal spielt es eine Rolle, wenn die Werte nahe an dem Limit sind, das durch 16-Bit repräsentiert werden kann.

Ein weiteres Beispiel

Hier ist ein weiteres Beispiel:

short x = 12;
short y = 3;
short ergebnis;

ergebnis = x / y;

Der Ausdruck   x / y   dividiert eine 32-Bit 12 durch eine 32-Bit 3, auch wenn die Variablen x und y nur 16 Bit haben. Die Berechnung ergibt ein 32-Bit Ergebnis. Da das 32-Bit Ergebnis nicht in die 16 Bit von ergebnis passen, wird der Compiler die letzte Anweisung nicht kompilieren. Das kann Sie komplett verwirren, wenn es Ihnen passiert.

D:\daten\java\bsp>javac ShortBsp.java
ShortBsp.java:9: possible loss of precision
found   : int
required: short
    result = x / y;
               ^
1 error

D:\daten\java\bsp>

Auf der Ebene der professionellen Programmierung sind Details wie diese manchmal wichtig. Aber Sie werden für die meisten Programme für Ganzzahlen int oder long und für Gleitpunktzahlen double verwenden. Das wird Ihnen Ärger ersparen. Wenn Sie das Problem nicht vermeiden können, verwenden Sie Typkonvertierung, wie in Kapitel 28 beschrieben.

FRAGE 5:

Erwarten Sie, dass ein moderner elektronischer Taschenrechner Ihnen für den Ausdruck  (31.5 - 12)/4.1  die gleiche Lösung wie Java gibt?