La façon dont les ordinateurs traitent les nombres négatifs est différente de la façon dont les humains font. Il n'ya pas de signe en binaire et donc un système connu sous le nom complément à deux est utilisé. Dans ce système, l' espace utilisé pour stocker un numéro est divisé en deux, la moitié pour les nombres positifs et demi pour le négatif. Le plus grand entier de 32 bits est 4294967295 . Lorsque vous traitez avec des nombres positifs et négatifs , appelés nombres signés , le plus grand nombre positif de 32 bits est 2147483647 et le plus grand nombre négatif est 2,147,483,648 . Puisque ce sont les limites de nombres de 32 bits il ya un phénomène étrange où l'ajout de 1 à 2,147,483,647 résultats dans 2,147,483,648 . Un simple Visual C + + projet démontre. Choses que vous devez
Microsoft Visual C + + 2010 Express
Show More Instructions
1
Cliquez sur l'icône Windows "Démarrer" , sélectionnez " Tous les programmes ", puis " Microsoft Visual studio 2010 Express . " Cliquez sur " Microsoft Visual C + + 2010 Express . "
2
Cliquez sur le menu "Fichier" et accédez au "Nouveau". Cliquez sur " Project " pour ouvrir la nouvelle boîte de dialogue du projet.
3
Cliquez sur " Win32 " dans les modèles arborescence installé sur le côté gauche de la boîte de dialogue . Cliquez sur " Application console Win32. " Entrez un nom pour le projet ( par exemple , " negativenumbers " ) dans le champ "Nom : " champ vers le bas de la boîte de dialogue . Cliquez sur " OK " pour ouvrir le dialogue " Win32 Application Wizard" . Cliquez sur " Terminer". Bien que ce soit un projet C + + , le code dans la prochaine étape est pur C.
4
Remplacez le code par défaut qui apparaît dans l'éditeur avec le code suivant :
# include " stdafx.h "
int main (int argc, char * argv []) {
unsigned int ui = 0;
int i = 0;
ui ui = - 1; /* 0 - 1 = 4294967295 * /
i = i - 1; /* 0 -1 = -1 * /
< p > printf (" unsigned int : % u \\ n", ui) ;
printf (" int :% d \\ n", i);
ui = 2147483647 ;
< p> i = 2147483647 ;
ui = ui + 1; /* 2147483647 + 1 = 2147483648 * /
i = i + 1; /* 2147483647 + 1 = -2147483648 * /
printf (" unsigned int : % u \\ n", ui) ;
printf (" int :% d \\ n", i);
Return of 0;
}
5
presse "F7" ou cliquez sur le menu " Debug ", puis " Générer la solution " pour compiler le programme et afficher le résultat dans la fenêtre de sortie vers le bas de Visual C + +:
========== Génération : 1 a réussi , 0 a échoué , 0 mis à jour, 0 a été ignoré ==========
< p> Si le résultat est " 0 réussi " et puis un certain nombre d' échecs , vérifiez le code que vous avez entré et s'assurer qu'il est identique au code à l'étape 4 .
6
Appuyez sur "Ctrl + F5 " pour exécuter le programme .