Constantes entières
Remonter à Présentation des constantes - Index
Les constantes entières peuvent être décimales (base 10
), octales (base 8
) ou hexadécimales (base 16
).
Sommaire
Constantes décimales
Les constantes décimales de 0
to 4 294 967 295
sont autorisées. Les constantes dépassant cette limite sont tronquées. Les constantes décimales ne doivent pas utiliser un zéro initial. Une constante entière avec un zéro initial est interprétée comme une constante octale. Par conséquent,
int i = 10; /*decimal 10 */ int i = 010; /*decimal 8 */ int i = 0; /*decimal 0 = octal 0 */
Constantes octales
Toutes les constantes avec un zéro initial sont considérées comme étant octales. Si une constante octale contient les chiffres non autorisés 8
ou 9
, une erreur est signalée. Les constantes octales dépassant 037777777777
sont tronquées.
Constantes hexadécimales
Toutes les constantes commençant par 0x
(ou 0X
) sont considérées comme étant hexadécimales. Les constantes hexadécimales dépassant 0xFFFFFFFF
sont tronquées.
Constantes entières avec les suffixes L
et U
Le suffixe L
(ou l
) attaché à n'importe quelle constante provoque sa représentation en type long. De même, le suffixe U
(ou u
) qualifie la constante en unsigned. Le type de constante est unsigned long si la valeur du nombre lui-même est supérieure à 65 535
, quelle que soit la base utilisée.
Si la constante a un suffixe U
(ou u
), son type de données sera le premier des types unsigned int et unsigned long int qui peut s'adapter à sa valeur.
Si la constante a un suffixe L
(ou l
), son type de données sera le premier des types long int et unsigned long int qui peut s'adapter à sa valeur.
Vous pouvez utiliser les deux suffixes L
et U
sur la même constante, dans n'importe quel l'ordre ou casse : ul
, lu
, UL
, et ainsi de suite. Si la constante a les deux suffixes L
et U
(ul
, lu
, Ul
, lU
, uL
, Lu
, LU
ou UL
), son type de données sera unsigned long int.
Constantes entières sans les suffixes L
ou U
En l'absence de tout suffixe de redéfinition (U
, u
, L
ou l
), le type de données d'une constante entière est dérivée de sa valeur. Le type de données est défini comme le premier des types suivants qui peut s'adapter à une valeur constante entière :
Décimal |
int, long int, unsigned long int |
Octal |
int, unsigned int, long int, unsigned long int |
Hexadécimal |
int, unsigned int, long int, unsigned long int |
La façon de définir le type de données selon une valeur constante entière est présentée dans les tableaux suivants.
Constantes décimales - types dérivés :
Valeur de la constante |
Type de données dérivé |
0 to 32,767 |
int |
32,768 to 2,147,483,647 |
long |
2,147,483,648 to 4,294,967,295 |
unsigned long |
> 4294967295 |
tronqué |
Constantes octales - types dérivés :
Valeur de la constante |
Type de données dérivé |
00 to 077777 |
int |
010000 to 0177777 |
unsigned int |
02000000 to 017777777777 |
long |
020000000000 to 037777777777 |
unsigned long |
> 037777777777 |
tronqué |
Constantes hexadécimales - types dérivés :
Valeur de la constante |
Type de données dérivé |
0x0000 to 0x7FFF |
int |
0x8000 to 0xFFFF |
unsigned int |
0x10000 to 0x7FFFFFFF |
long |
0x80000000 to 0xFFFFFFFF |
unsigned long |
> 0xFFFFFFFF |
tronqué |
Notez que les règles varient selon qu'il s'agit de constantes décimales ou non décimales.
Constantes entières avec des suffixes de taille
Avec un suffixe de taille, vous pouvez spécifier le nombre d'octets occupés en mémoire par une constante entière (la taille d'une constante entière). Vous pouvez utiliser les suffixes de taille suivants : i8
, I8
, i16
, I16
, i32
, I32
, i64
et I64
.
Un suffixe de taille peut être précédé du suffixe unsigned - U
(ou u
). Par exemple, ui8
, Ui16
, UI32
, ui64
, et ainsi de suite.
Le suffixe de taille doit correspondre exactement au type entier étendu déclaré de la constante entière. Par exemple, vous pouvez utiliser les constantes entières suivantes des types entiers étendus :
__int16 s = 32767i16; unsigned __int16 us = 64532Ui16; unsigned __int32 ui = 223456789uI32;
Voir aussi
- Constantes
- Constantes à virgule flottante
- Constantes caractère
- Les trois types char
- Séquences d'échappement
- Constantes à caractères étendus et à caractères multiples
- Constantes chaîne
- Constantes énumération
- Constantes et représentation interne
- Représentation interne des types numériques
- Expressions constantes
- Types entiers étendus : __int8, __int16, __int32, __int64