2147483647 - (-2147483648) = -1 ?

Status
Nicht offen für weitere Antworten.

automatix

Aktives Mitglied
Hallo zusammen!

Guckt Euch mal bitte den Code da an:

Code:
		System.out.println(
			2147483647 + " - " + (-2147483648) + " = " + (2147483647 - (-2147483648))
		);
		System.out.println(
			Integer.MAX_VALUE + " - " + Integer.MIN_VALUE + " = " + (Integer.MAX_VALUE - Integer.MIN_VALUE)
		);

Die Ausgabe ist:
2147483647 - -2147483648 = -1
2147483647 - -2147483648 = -1

Aber 2147483647 - (-2147483648) ist doch nicht -1, sondern 4294967295! Was ist hier falsch im Code? Warum übersieht Java, dass es sich beim Subtrahenden um eine negative Zahl handelt?..
 

automatix

Aktives Mitglied
Maaaaan, wie dooooof! ))))

Code:
		System.out.println(
			2147483647 + " - " + (-2147483648) + " = " + (2147483647 - (long)(-2147483648))
		);
		System.out.println(
			Integer.MAX_VALUE + " - " + Integer.MIN_VALUE + " = " + ((long)Integer.MAX_VALUE - Integer.MIN_VALUE)
		);

Vielen Dank!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben