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 = 1
s = 1000
s = 100000

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

SHRT_MAX
s = SHRT_MAX

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

s = s + 1
s = SHRT_MIN
s -= 1

Conséquence amusante:

s = SHRT_MIN
s = -s 
s = abs(s)

Type int#

int i;
i = INT_MAX
i + 1
i = INT_MIN
-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éels!