Constantes entières

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Présentation des constantes - Index

Les constantes entières peuvent être décimales (base 10), octales (base 8) ou hexadécimales (base 16).

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