共用方式為


C + + 整數常數

整數常數是固定的資料項目沒有分數部分或指數。 它們開頭一律以數字。 您可以指定整數常數以十進位、 八進位或十六進位的格式。 它們可以指定帶正負號或不帶正負號的型別和長或短的型別。

文法

  • 整數常數
    小數位數的整數尾碼opt

    八進位常數整數尾碼opt

    十六進位常數整數尾碼opt

    'c-char-sequence'

  • 十進位常數
    非零值數字

    小數位數的數字

  • 八進位常數
    0

    八進位常數八進位數字

  • 十六進位常數
    0x十六進位數字

    0 X十六進位數字

    十六進位常數的十六進位數字

  • 非零值數字: 其中一項
    1 2 3 4 5 6 7 8 9

  • 八進位數字: 其中一項
    0 1 2 3 4 5 6 7

  • 十六進位數字: 其中一項
    0 1 2 3 4 5 6 7 8 9

    a b c d e f

    B D E 汽

  • 整數尾碼
    未簽署尾碼長時間後置opt

    不帶正負號的長時間後置字元型尾碼opt

  • 未簽署尾碼: 其中一項
    U u

  • 長時間後置字元: 其中一項
    L l

  • 64 位元整數尾碼
    i64 LL ll

若要指定使用八進位或十六進位標記法表示的整數常數,使用前置詞表示基底。 若要指定特定的整數類資料型別的整數常數,請使用後置字元來表示型別。

若要指定十進位常數,請先以非零的數字的規格。 例如:

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

若要指定八進位的常數,請先加上 0,其後跟隨一連串範圍從 0 到 7 的數字的規格。 8 和 9 的數字是在指定八進位的常數的錯誤。 例如:

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

若要指定十六進位常數,開始與規格0x或0X ("x"的大小寫不重要),其後跟隨一連串範圍中的數字0到9和a (或A) 透過f (或F)。 十六進位數字a (或A) 透過f (或F) 表示介於 10 到 15 的值。 例如:

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

若要指定不帶正負號的型別,使用任何一種 uu 後置字元。 若要指定 long 型別,使用任何一種 ll 後置字元。 例如:

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

若要指定的 64 位元的整數類資料型別,請使用 LL、 ll 或 i64 的後置字元。 例如:

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

00a1awxf.collapse_all(zh-tw,VS.110).gifOutput

in f1(int)
in f1(__int64)

請參閱

參考

C + + 的常值