Les types entiers en C++

#include <climits>
#include <cmath>

Type unsigned short int

unsigned short int u;
u = 1
u = 10000
u = 100000
USHRT_MAX
pow(2,16) - 1
u = 65533 
u = u + 1
u = u + 1
u = u + 1
u = u - 1

Type signed short int

short int s;
s = 32767
s = s + 1

Type int

int i;
i = 1
i = 1000
i = 1000000
i = 1000000000
i = 1000000000000

Quel est le plus grand entier que l’on peut représenter avec un int?

INT_MAX
i = INT_MAX

Que se passe-t’il si on lui ajoute 1?

i + 1
i = INT_MIN
i - 1

Conséquence amusante:

-i
abs(i)

Type long

long l = LONG_MAX
l + 1
l = LONG_MIN
l - 1
- l

À retenir

  • Les entiers des types int, long, … sont des entiers machine; ce sont des approximations des entiers mathématiques
    Il est possible de représenter les entiers mathématiques arbitraires avec un type adéquat

  • De même pour float, double, …: ce sont des approximations des nombres réèls
    Il n’est pas possible de représenter tous les nombres réèls!