在C/C++中,整数常量可以加上不同的前缀,表示不同的进制:
- 十进制:不带前缀,默认表示为十进制
- 八进制:0 表示八进制
- 十六进制:0x 或 0X 表示十六进制
整数常量还可以加上不同的后缀,表示不同的数据类型:
- 无符号:U
- 长整数:L
示例代码如下:
- #include <iostream>
- using namespace std;
- int main()
- {
- int x = 666; // 十进制
- int y = 020; // 八进制
- int z = 0XF; // 十六进制
- cout << "x:" << x << endl;
- cout << "y:" << y << endl;
- cout << "z:" << z << endl;
- auto a = 666; // 整数
- auto b = 666U; // 无符号整数
- auto c = 666L; // 长整数
- auto d = 666UL; // 无符号长整数
- cout << "type(a): " << typeid(a).name() << endl;
- cout << "type(b): " << typeid(b).name() << endl;
- cout << "type(c): " << typeid(c).name() << endl;
- cout << "type(d): " << typeid(d).name() << endl;
- return 0;
- }
其中,typeid().name(),可以用来返回变量的数据类型。运行结果如下:
typeid().name() 返回的是变量数据类型的缩写,对应关系如下图所示。