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:
Si vous exécutez ce code, vous obtenez la très surprenante réponse:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int a = Integer.MIN_VALUE; int b = -a; System.out.println(a+" "+b);
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.-2147483648 -2147483648
Et c'est le même résultat si on switche la ligne avec celle-ci:
Avez-vous une explication plausible?
Code : Sélectionner tout - Visualiser dans une fenêtre à part int b = a*(-1);
Partager