C++的oct hex dec
时间: 2025-02-21 15:02:05 浏览: 67
### C++ 中八进制、十六进制和十进制的表示方法
在 C++ 编程语言中,整型字面量可以采用不同的数制来表达。对于八进制数值,在书写时需以 `0` 开头;而十六进制则应以前缀 `0x` 或者 `0X` 表示[^1]。
#### 十进制 (Decimal)
这是最常用的计数方式,默认情况下编写的数字即被解释为十进制:
```cpp
int decValue = 25; // 默认就是十进制
```
#### 八进制 (Octal)
当一个整数常量前有零 (`0`) 的时候,则该值会被认为是八进制形式:
```cpp
int octValue = 037; // 这是一个八进制数,其对应的十进制值为 31
```
#### 十六进制 (Hexadecimal)
如果希望定义一个十六进制整数,可以在前面加上 `0x` 或 `0X` 前缀:
```cpp
int hexValue = 0xFF; // 此处代表的是十进制中的 255
```
### 数制之间的转换
为了实现不同基数间的相互转化,可利用标准库函数或通过位运算操作完成。以下是几种常见的做法:
- **使用流操纵器**:可以通过设置输入/输出流的状态来进行格式化读写。
```cpp
#include <iostream>
using namespace std;
int main() {
int value = 25;
cout << "Dec: " << dec << value << endl;
cout << "Hex: " << hex << value << endl;
cout << "Oct: " << oct << value << endl;
}
```
- **内置函数**:C++ 提供了一些用于类型转换的标准库函数,比如 `std::stoi`, `std::to_string` 等等,它们支持指定底数参数进行字符串到整数以及相反方向上的变换。
```cpp
string strHex = "FF";
int intValueFromHex = stoi(strHex, nullptr, 16); // 将十六进制字符串转成整数
// 把整数转化为其他进制的字符串
stringstream ss;
ss << hex << intValueFromHex;
string strHexResult;
ss >> strHexResult;
```
阅读全文
相关推荐


















