Freigeben über


C++-Ganzzahlkonstanten

Integerkonstanten sind konstante Datenelemente, die keine Nachkommastellen oder Exponenten aufweisen. Sie beginnen immer mit einer Ziffer. Sie können Integerkonstanten im Dezimal-, Oktal- oder Hexadezimalformat angeben. Sie können Typen mit oder ohne Vorzeichen und lange oder kurze Typen angeben.

Grammatik

  • integer-constant:
    decimal-constant integer-suffixopt

    octal-constant integer-suffixopt

    hexadecimal-constant integer-suffixopt

    'c-char-sequence'

  • decimal-constant:
    nonzero-digit

    decimal-constant digit

  • octal-constant:
    0

    octal-constant octal-digit

  • hexadecimal-constant:
    0x hexadecimal-digit

    0X hexadecimal-digit

    hexadecimal-constant hexadecimal-digit

  • nonzero-digit: one of
    1 2 3 4 5 6 7 8 9

  • octal-digit: one of
    0 1 2 3 4 5 6 7

  • hexadecimal-digit: one of
    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: one of
    u U

  • long-suffix: one of
    l L

  • 64-bit integer-suffix:
    i64 LL ll

Um Integerkonstanten mit Oktal- oder Hexadezimalnotation anzugeben, verwenden Sie ein Präfix, das die Basis bezeichnet. Um eine Integerkonstante eines angegebenen ganzzahligen Typs anzugeben, verwenden Sie ein Suffix, das den Typ bezeichnet.

Um eine Dezimalkonstante anzugeben, beginnen Sie die Angabe mit einer Ziffer ungleich 0 (null). Beispiel:

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

Um eine oktale Konstante anzugeben, beginnen Sie die Angabe mit 0 (null), gefolgt von einer Ziffernfolge im Bereich von 0 (null) bis 7. Die Ziffern 8 und 9 sind Fehler, wenn sie eine oktale Konstante angeben. Beispiel:

int i = 0377;   // Octal constant
int j = 0397;   // Error: 9 is not an octal digit

Um eine hexadezimale Konstante anzugeben, beginnen Sie die Angabe mit 0x oder 0X (die Groß-/Kleinschreibung von "x" ist nicht relevant), gefolgt von einer Ziffernfolge im Bereich 0 bis 9 und a (oder A) bis f (oder F). Hexadezimalzahlen a (oder A) bis f (oder F) stellen Werte im Bereich von 10 bis 15 dar. Beispiel:

int i = 0x3fff;   // Hexadecimal constant
int j = 0X3FFF;   // Equal to i

Um einen Typ ohne Vorzeichen anzugeben, verwenden Sie entweder das Suffix u oder das Suffix U. Um einen langen Typ anzugeben, verwenden Sie entweder das Suffix l oder das Suffix L. Beispiel:

unsigned uVal = 328u;             // Unsigned value
long lVal = 0x7FFFFFL;            // Long value specified 
                                  //  as hex constant
unsigned long ulVal = 0776745ul;  // Unsigned long value

Um einen ganzzahligen 64-Bit-Typ anzugeben, verwenden Sie das Suffix LL, ll oder i64. Beispiel:

// 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);
}

Ausgabe

in f1(int)
in f1(__int64)

Siehe auch

Referenz

C++-Literale