#3563. C++-问与答-各种进制常量的表示

C++-问与答-各种进制常量的表示

Background

Description

在 C++ 中,常量可以用不同的进制表示,包括 十进制八进制十六进制二进制。以下是各种进制的表示方法:


1. 十进制(Decimal)

  • 表示方法:直接写数字,没有前缀。
  • 示例
    int a = 123;  // 十进制 123
    

2. 八进制(Octal)

  • 表示方法:以 0 开头。
  • 示例
    int b = 0123;  // 八进制 123,等于十进制 83
    

3. 十六进制(Hexadecimal)

  • 表示方法:以 0x0X 开头。
  • 示例
    int c = 0x1A;  // 十六进制 1A,等于十进制 26
    

4. 二进制(Binary)

  • 表示方法:以 0b0B 开头(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

注意事项

  1. 前缀区分

    • 十进制:无前缀。
    • 八进制:0 前缀。
    • 十六进制:0x0X 前缀。
    • 二进制:0b0B 前缀。
  2. 编译器支持

    • 二进制字面值需要 C++14 或更高版本支持。
  3. 类型范围

    • 确保字面值在目标类型的范围内(如 int 通常是 32 位)。

总结

进制 前缀 示例 十进制值
十进制 123 123
八进制 0 0123 83
十六进制 0x0X 0x1A 26
二进制 0b0B 0b1010 10

掌握这些表示方法可以更方便地处理不同进制的数据。

Format

Input

Output

Samples



Limitation

1s, 1024KiB for each test case.