Partager via


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-suffixopt

    octal-constant integer-suffixopt

    hexadecimal-constant integer-suffixopt

    'c-char-sequence'

  • decimal-constant:
    un chiffre différent de zéro

    chiffre à décimale constante

  • octal-constant:
    0

    chiffre octal à octal constant

  • hexadecimal-constant:
    0x hexadecimal-digit

    0X hexadecimal-digit

    chiffre hexadécimal à d'un chiffre hexadécimal.

  • nonzero-digit: un de
    1 2 3 4 5 6 7 8 9

  • octal-digit: un de
    0 1 2 3 4 5 6 7

  • hexadecimal-digit: un de
    0 1 2 3 4 5 6 7 8 9

    a b c d e f

    A B C D E F

  • integer-suffix:
    unsigned-suffix long-suffixopt

    long-suffix unsigned-suffixopt

  • unsigned-suffix: un de
    u U

  • long-suffix: un de
    l L

  • 64-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)

Voir aussi

Référence

Littéraux C++