Udostępnij za pośrednictwem


Stałe całkowite języka C++

Stałe całkowite są stałymi elementami danych, które nie mają części ułamkowych lub wykładników.Zawsze rozpoczynają się od cyfry.Można określić stałe całkowite w formie dziesiętnej, ósemkowej lub szesnastkowej.Mogą one określać typy ze znakiem lub bez znaku oraz typy long lub short.

Gramatyka

  • 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:
    0xhexadecimal-digit

    0Xhexadecimal-digit

    hexadecimal-constant hexadecimal-digit

  • nonzero-digit: jedna z
    1 2 3 4 5 6 7 8 9

  • octal-digit: jedna z
    0 1 2 3 4 5 6 7

  • hexadecimal-digit: jedna z
    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: jedna z
    u U

  • long-suffix: jedna z
    l L

  • 64-bit integer-suffix:
    i64 LL ll

Aby określić stałe całkowite przy użyciu notacji ósemkowej lub szesnastkowej, użyj prefiksu, który oznacza podstawę.Aby określić stałą całkowitą danego typu całkowitego, użyj sufiksu, który oznacza typ.

Aby określić stałą dziesiętną, należy rozpocząć określanie od cyfry różnej od zera.Na przykład:

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

Aby określić stałą ósemkową, należy rozpocząć określanie od 0, po którym następują cyfry z zakresu od 0 do 7.Cyfry 8 i 9 są błędne, przy określeniu stałej ósemkowej.Na przykład:

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

Aby określić stałą szesnastkową, należy rozpocząć określanie od 0x lub 0X (wielkość litery "x" nie ma znaczenia), po czym następuje sekwencja cyfr z zakresu od 0 do 9 oraz od a (lub A) do f (lub F).Cyfry szesnastkowe od a (lub A) do f (lub F) reprezentują wartości z zakresu od 10 do 15.Na przykład:

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

Aby określić typ bez znaku, należy użyć przyrostka u lub U.Aby określić typ long, należy użyć przyrostka l lub L.Na przykład:

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

Aby określić 64-bitowy typ całkowity, należy użyć przyrostka LL, ll lub i64. Na przykład:

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

Dane wyjściowe

in f1(int)
in f1(__int64)

Zobacz też

Informacje

Literały języka C++