B
bruce00
Gast
Hallo liebe Community,
bin neu hier, habe mich gerade eben registriert.
Ich bin neu in Java und habe bisschen mit dem Datentypen rumgespielt. Meine Frage ist folgendes:
es kommt zu einem Überlauf der Datentypen, wenn der Wertebereich überschritten wird. Bei Int und long kann ich das feststellen. Leider bekomme ich bei Byte und short andere Ergebnisse.
(int +Wertebereich + 1) = int - Wertebereich
(int -Wertebereich - 1) = int + Wertebereich
Mit dem Datentyp long passiert genau das gleiche. Nun, wenn ich das für byte und short mache, kriege ich andere ergebnisse(unten):
Ausgabe ist: -129.
Es müsste aber 127 rauskommen, weil der Wertebereich in den plus Bereich rutscht.
Kann mir einer sagen, warum das rauskommt. Habe ich was falsch gemacht.

Danke im Vorraus!
bin neu hier, habe mich gerade eben registriert.
Ich bin neu in Java und habe bisschen mit dem Datentypen rumgespielt. Meine Frage ist folgendes:
es kommt zu einem Überlauf der Datentypen, wenn der Wertebereich überschritten wird. Bei Int und long kann ich das feststellen. Leider bekomme ich bei Byte und short andere Ergebnisse.
(int +Wertebereich + 1) = int - Wertebereich
(int -Wertebereich - 1) = int + Wertebereich
Mit dem Datentyp long passiert genau das gleiche. Nun, wenn ich das für byte und short mache, kriege ich andere ergebnisse(unten):
Java:
byte negWertebereich = -128;
System.out.println("Überlauf");
System.out.println(negWertebereich - 1);
Ausgabe ist: -129.
Es müsste aber 127 rauskommen, weil der Wertebereich in den plus Bereich rutscht.
Kann mir einer sagen, warum das rauskommt. Habe ich was falsch gemacht.
Danke im Vorraus!