[SCJP] code avec Integer.MIN_VALUE, pourquoi?
Bonjour à tous.
Toujours dans le but de passer ma première certification Java, je suis tombé sur un cas intéressant pour lequel je ne comprend absolument pas le raisonnement.
Dès lors je me permet de vous poser le cas exposé et j'espère obtenir une réponse plus rationnelle que "C'est ainsi bloque et puis c'est tout ^^"
Voici le cas:
Code:
1 2 3
| int a = Integer.MIN_VALUE;
int b = -a;
System.out.println(a+" "+b); |
Si vous exécutez ce code, vous obtenez la très surprenante réponse:
Citation:
-2147483648 -2147483648
Alors pourquoi? On serait tenté de dire qu'il va y avoir une exception étant donné que l'on sort du range d'un int mais non il n'en ai rien.
Et c'est le même résultat si on switche la ligne avec celle-ci:
Avez-vous une explication plausible?