Constantes entières C++
Les constantes entières sont des éléments de données constants qui n'ont aucune partie fractionnaire ou exposant. Elles commencent toujours par un chiffre. Vous pouvez spécifier des constantes entières en forme décimale, octale ou hexadécimale. Elles peuvent spécifier des types signés ou non signés, longs ou courts.
Grammaire
integer-constant:
decimal-constant integer-suffixoptoctal-constant integer-suffixopt
hexadecimal-constant integer-suffixopt
'c-char-sequence'
decimal-constant:
un chiffre différent de zérochiffre à décimale constante
octal-constant:
0chiffre octal à octal constant
hexadecimal-constant:
0x hexadecimal-digit0X hexadecimal-digit
chiffre hexadécimal à d'un chiffre hexadécimal.
nonzero-digit: un de
1 2 3 4 5 6 7 8 9octal-digit: un de
0 1 2 3 4 5 6 7hexadecimal-digit: un de
0 1 2 3 4 5 6 7 8 9a b c d e f
A B C D E F
integer-suffix:
unsigned-suffix long-suffixoptlong-suffix unsigned-suffixopt
unsigned-suffix: un de
u Ulong-suffix: un de
l L64-bit integer-suffix:
i64 LL ll
Pour spécifier des constantes entières en utilisant la notation octale ou hexadécimale, utilisez un préfixe qui indique la base. Pour spécifier une constante entière d'un type intégral donné, utilisez un suffixe correspondant au type.
Pour spécifier une constante décimale, commencez la spécification avec un chiffre différent de zéro. Par exemple :
int i = 157; // Decimal constant
int j = 0198; // Not a decimal number; erroneous octal constant
int k = 0365; // Leading zero specifies octal constant, not decimal
Pour spécifier une constante octale, commencez la spécification à 0, suivi d'une séquence de chiffres dans la plage de 0 à 7. Les chiffres 8 et 9 sont des erreurs lors de la spécification d'une constante octale. Par exemple :
int i = 0377; // Octal constant
int j = 0397; // Error: 9 is not an octal digit
Pour spécifier une constante hexadécimale, commencez la spécification avec 0x ou 0X (« x » peut être majuscule ou non cela n'est pas important), suivi d'une séquence de chiffres dans la plage de 0 à 9 et de a (ou A) à f (ou F). Les chiffres hexadécimaux de a (ou A) à f (ou F) représentent des valeurs dans la plage de 10 à 15. Par exemple :
int i = 0x3fff; // Hexadecimal constant
int j = 0X3FFF; // Equal to i
Pour spécifier un type non signé, utilisez u ou le suffixe N. Pour spécifier un type long, utilisez l ou le suffixe L. Par exemple :
unsigned uVal = 328u; // Unsigned value
long lVal = 0x7FFFFFL; // Long value specified
// as hex constant
unsigned long ulVal = 0776745ul; // Unsigned long value
Pour spécifier un type entier 64 bits, utilisez LL, ll ou le suffixe i64. Par exemple :
// 64bitsuffix.cpp
#include <stdio.h>
enum MyEnum {
IntType,
Int64Type
};
MyEnum f1(int) {
printf("in f1(int)\n");
return IntType;
}
MyEnum f1(__int64) {
printf_s("in f1(__int64)\n");
return Int64Type;
}
int main() {
MyEnum t1 = f1(0x1234), t2 = f1(0x1234i64);
}
Sortie
in f1(int)
in f1(__int64)