deuxbagettes a écrit :
 
 qu'arrive-t-il à un entier (non signé) qui est à sa valeur maximum (OxFFFFFFFF pas exemple pour un entier de 4 octet) et qu'on l'incrémente à nouveau ?
   | 
 
Devient 0.  Les non signes modelisent Z/nZ.
 
 
INT_MAX
 
Citation :
 
 est définie comme etant le plus grand entier disponible.
   | 
 
Entier dans le sens int.  Il y a aussi LONG_MAX (long) SHRT_MAX, USHRT_MAX, UINT_MAX ULONG_MAX.
 
Citation :
 
 Par definition , MAX_INT+1 renvoit 0 sur les machines classiques à representation en complément à 2.
   | 
 
Non.  -INT_MAX-1 soit INT_MIN.
 
Ensuite c'est un depassement de capacite et de plus en plus les compilateurs supposent que ca n'arrive pas (par exemple si gcc a bien une option pour permettre de dependre de ce comportement, mais elle n'est pas active par defaut), donc dependre de la valeur optenue est peu sage.
 
Citation :
 
 Classiquement, sur ces memes machines
 unsigned x = ~0;
 renvoit le bon pattern de bit.
   | 
 
Pas besoin de dependre de quoi que ce soit:
Code :
 - unsigned x = -1U;
 - unsigned y = ~0U;
 
  | 
sont garntis etre UINT_MAX.
 
 ---------------
			
The truth is rarely pure and never simple (Oscar Wilde)