c++十进制转N进制
时间: 2024-09-26 08:11:02 浏览: 69
在C++中,将十进制转换成其他任意进制(如二进制、八进制或十六进制),可以使用内置的函数库或者自定义算法实现。这里简单介绍一下如何使用内置的`std::bitset`或`std::stringstream`。
1. **使用`std::bitset`**:
```cpp
#include <bitset>
#include <string>
// 十进制转二进制
std::string decimalToBinary(int decimal) {
std::bitset<32> binary(decimal); // 32位足够存储32位整数,如果需要更大范围,调整位宽
return binary.to_string();
}
// 类似地,你可以创建不同的函数版本,替换`std::bitset<32>`为对应进制位宽
```
2. **使用`std::stringstream`**:
```cpp
#include <sstream>
#include <string>
// 十进制转任意进制
template<int Base>
std::string decimalToBase(int decimal) {
std::stringstream ss;
ss << std::base(Base) << decimal; // 标准I/O流会自动处理进制转换
return ss.str();
}
```
使用这两个方法时,记得传入正确的基数(例如2 for 二进制,8 for 八进制,10 for 十进制,16 for 十六进制)。
阅读全文