-2147483648 est le plus petit entier de type entier 32 bits, mais il semble qu'elle déborde dans l' if(...)
phrase:
if (-2147483648 > 0)
std::cout << "true";
else
std::cout << "false";
Cela permettra d'imprimer true
lors de mes tests. Cependant, si on jette de -2147483648 à l'entier, le résultat sera différent:
if (int(-2147483648) > 0)
std::cout << "true";
else
std::cout << "false";
Cela permettra d'imprimer false
.
Je suis confus. Quelqu'un peut-il donner une explication à ce sujet?
Mise à jour 02-05-2012:
Merci pour vos commentaires, à mon compilateur, de la taille d'un int fait 4 octets. Je suis à l'aide de VC pour certains tests simples. J'ai changé la description dans ma question.
C'est beaucoup de très bonnes réponses dans ce post, AndreyT a donné une explication détaillée sur la façon dont le compilateur comportement sur cette entrée, et comment ce minimum entier a été mis en œuvre. qPCR4vir sur l'autre main a donné quelques "curiosités" et comment les entiers sont représentés. Tellement impressionnant!