Contrairement à d'autres langages comme CAML ou Maple, C++ n'opère pas sur des entiers de taille quelconque, mais sur l'un de ses types entiers, qui sont de taille fixe : short int, int, long int, le plus courant étant int, qui est codé sur 4 octets, c'est-à-dire 32 bits, sur les machines usuelles (Sparc, Alpha, Pentium). Ce sont des types d'entiers signés (c'est-à-dire positifs ou négatifs) ; il leur correspond des types d'entiers non-signés (c'est-à-dire positifs), unsigned short int, unsigned int et unsigned long int.
Quand un type entier est codé sur bits, entiers peuvent être
représentés. Pour des types non-signés, on peut ainsi représenter
l'intervalle ; pour la suite de bits
représente l'entier
.
Pour des types signés, les entiers dans l'intervalle
sont représentables ; les entiers sont représentés
de la même façon que dans le cas non-signé et l'on a ; les
entiers sont représentés en complément à deux (en général)
et l'on a ; pour , cela signifie que
représente l'entier
. Quand , le plus grand entier signé représenté est
de l'ordre de . Il est inutile de connaître ces valeurs
numériques, mais il faut savoir que les entiers représentés par le type
int forment l'intervalle INT_MIN
, INT_MAX
,
ces deux constantes étant définies dans climits. Il y a des
constantes analogues pour les autres types entiers.
Les opérations sont réalisées modulo , et aucun test de débordement
n'est fait à l'exécution. Il ne faut pas s'étonner de voir des
résultats négatifs en cas de débordement ; par exemple l'évaluation de
INT_MAX
+ 1 donnera la valeur de INT_MIN
.
La notation décimale peut être utilisée pour noter les valeurs entières :
int a = 144;
Un entier peut être lu sur l'entrée standard (le clavier) cin
au moyen de l'opérateur >>
, et écrit sur la sortie standard
(l'écran) cout au moyen de l'opérateur <<
:
int n; cin >> n; cout << n;