int
Les nombres entiers ne peuvent pas être aussi grand ou aussi petit que l'on veut.
Un int
est une valeur comprise entre -1073741824
et 1073741823
.
On expliquera à la fin du cours pourquoi les limites se situent à ces valeurs précisément (les curieux remarqueront déjà qu'il s'agit d'une puissance de deux, à une unité près). Pour l'instant, le but est surtout d'être informé qu'il y a une limite, et surtout de savoir qu'aucun message d'erreur ne sera affiché si vous dépassez ces limites !
Mais quel nombre entier est le suivant de 1073741823
? Écrivons un programme pour le voir :
print_int (1073741823 + 1);
L'affichage qu'on obtient est le nombre -1073741824
! Évidement, cela peut surprendre la première fois. C'est un peu comme si les nombres de type int
tournaient en rond. Lorsqu'on arrive tout en haut des positifs, on repart de tout en bas des négatifs. Selon la même logique, le nombre juste en dessous de -1073741824
est 1073741823
, comme le montre le programme :
print_int (-1073741824 - 1);
Conclusion :
Lorsqu'on travaille avec des int
, il faut faire attention à ne pas dépasser les limites, car aucun message d'erreur ne signale les dépassements.
Remarque : pour faire des calculs avec des nombres plus grands, il faudra soit utiliser des fonctions spéciales, soit se contenter d'une approximation avec un nombre de type float
. Dans une grande majorité des programmes dont l'objectif n'est pas de faire des maths, ces limites sur les int
sont suffisamment grandes pour ne poser aucun problème.