C++ 整数常量

整型常量是缺乏部分零件或指数的常量数据元素。 它们一直以数字启动。 你可以以十进制,八进制或十六进制的形式指定整型常数。 他们能够以或长或短的类型指定签名或非签名类型。

语法

  • “整数-常数”:
    十进制常数整数后缀选择

    八进制常数整数后缀选择

    十六进制常数整数后缀选择

    'c-char-sequence'

  • 十进制常数:
    非零数字

    十进制常数

  • 八进制常量
    0

    八进制常量八进制数字

  • 十六进制常数:
    0x 十六进制数字

    0X 十六进制数字

    十六进制常数的十六进制数字

  • 非零数字:其中之一
    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

    A B C D E F

  • “整数后缀”:
    无符号-长后缀-后缀选择

    长-后缀无符号-后缀选择

  • “无符号-后缀 长-后缀”:其中之一
    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 后缀。 若要指定较长的类型,请使用 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);
}

Output

in f1(int)
in f1(__int64)

请参见

参考

C++ 文本