Dans le code C++ suivant, 32767 + 1 = -32768.Comment éviter le débordement d'entier?
#include <iostream>
int main(){
short var = 32767;
var++;
std::cout << var;
std::cin.get();
}
Y at-il un moyen de laisser simplement "var" comme 32767, sans erreurs?
Avez-vous ce qui se passe ici? Vous avez atteint le plafond pour un nombre entier (court), donc en ajouter un de plus retourne les signes à la quantité négative maximale pour un nombre entier. – blu
Si vous voulez un mode différent où les entiers ne se recouvrent pas automatiquement, cela n'existe pas, désolé. – dmazzoni
Cela me rappelle pourquoi je [ne peux pas dormir] (http://xkcd.com/571/). :-) –