LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 249|回复: 0

整数文本

[复制链接]
发表于 2024-1-26 23:32:59 | 显示全部楼层 |阅读模式
整数文本以数字开头,没有小数部分或指数。 你可以指定十进制、二进制、八进制或十六进制形式的整数文本。 可以选择使用后缀将整数文本指定为无符号类型以及 long 类型或 long long 类型。

如果没有前缀或后缀,编译器将为整型文本值赋予 int 类型(32 位),前提是该值符合该类型,否则将赋予 long long 类型(64 位)。

要指定十进制整型文本,请以非零数字作为规范的开头。 例如:

C++

int i = 157;        // Decimal literal
int j = 0198;       // Not a decimal number; erroneous octal literal
int k = 0365;       // Leading zero specifies octal literal, not decimal
int m = 36'000'000  // digit separators make large values more readable
要指定八进制整型文本,请以 0 作为规范的开头,后跟 0 到 7 之间的一系列数字。 在指定八进制文本时,使用数字 8 和 9 是错误做法。 例如:

C++

int i = 0377;   // Octal literal
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 之间的值。 例如:

C++

int i = 0x3fff;   // Hexadecimal literal
int j = 0X3FFF;   // Equal to i
若要指定无符号类型,请使用 u 或 U 后缀。 若要指定 long 类型,请使用 l 或 L 后缀。 要指定 64 位整型类型,请使用 LL 或 ll 后缀。 i64 后缀仍受支持,但不建议使用。 它是 Microsoft 专用的,不可移植。 例如:

C++

unsigned val_1 = 328u;                  // Unsigned value
long val_2 = 0x7FFFFFL;                 // Long value specified
                                        //  as hex literal
unsigned long val_3 = 0776745ul;        // Unsigned long value
auto val_4 = 108LL;                           // signed long long
auto val_4 = 0x8000000000000000ULL << 16;     // unsigned long long
数字分隔符:可以使用单引号字符(撇号)分隔较大数字中的位值,使它们更易于人类阅读。 分隔符不会对编译产生任何影响。

C++

long long i = 24'847'458'121;

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表