zurück   Home   weiter

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 sehr verwirrend sein.

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 wir werden in der Regel für Ganzzahlen int oder long und für Gleitpunktzahlen double verwenden. Das wird uns Ärger ersparen. Wenn sich das Problem nicht vermeiden läßt, verwenden wir Typkonvertierung, wie in Kapitel 28 beschrieben.

Frage 5:

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