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!