#3563. C++-问与答-各种进制常量的表示
C++-问与答-各种进制常量的表示
Background
Description
在 C++ 中,常量可以用不同的进制表示,包括 十进制、八进制、十六进制 和 二进制。以下是各种进制的表示方法:
1. 十进制(Decimal)
- 表示方法:直接写数字,没有前缀。
- 示例:
int a = 123; // 十进制 123
2. 八进制(Octal)
- 表示方法:以
0
开头。 - 示例:
int b = 0123; // 八进制 123,等于十进制 83
3. 十六进制(Hexadecimal)
- 表示方法:以
0x
或0X
开头。 - 示例:
int c = 0x1A; // 十六进制 1A,等于十进制 26
4. 二进制(Binary)
- 表示方法:以
0b
或0B
开头(C++14 引入)。 - 示例:
int d = 0b1010; // 二进制 1010,等于十进制 10
示例代码
以下是一个完整的示例,展示不同进制的表示和输出:
#include <iostream>
using namespace std;
int main() {
// 十进制
int decimal = 123;
cout << "Decimal 123: " << decimal << endl;
// 八进制
int octal = 0123;
cout << "Octal 0123: " << octal << endl;
// 十六进制
int hexadecimal = 0x1A;
cout << "Hexadecimal 0x1A: " << hexadecimal << endl;
// 二进制
int binary = 0b1010;
cout << "Binary 0b1010: " << binary << endl;
return 0;
}
输出结果
Decimal 123: 123
Octal 0123: 83
Hexadecimal 0x1A: 26
Binary 0b1010: 10
注意事项
-
前缀区分:
- 十进制:无前缀。
- 八进制:
0
前缀。 - 十六进制:
0x
或0X
前缀。 - 二进制:
0b
或0B
前缀。
-
编译器支持:
- 二进制字面值需要 C++14 或更高版本支持。
-
类型范围:
- 确保字面值在目标类型的范围内(如
int
通常是 32 位)。
- 确保字面值在目标类型的范围内(如
总结
进制 | 前缀 | 示例 | 十进制值 |
---|---|---|---|
十进制 | 无 | 123 |
123 |
八进制 | 0 |
0123 |
83 |
十六进制 | 0x 或 0X |
0x1A |
26 |
二进制 | 0b 或 0B |
0b1010 |
10 |
掌握这些表示方法可以更方便地处理不同进制的数据。
Format
Input
Output
Samples
Limitation
1s, 1024KiB for each test case.