c++有没有函数可以把十进制转换成n进制,n<=16
时间: 2024-10-17 11:10:03 浏览: 25
C++标准库提供了一个函数`std::to_string()`可以将整数转换为字符串,包括十进制和其他进制。不过这个函数默认就是十进制。如果你需要将一个十进制整数转换为十六进制或其他任意小于等于16的基数(如二进制),你可以手动编写转换逻辑或者借助第三方库,比如Boost.Multiprecision库。
一种简单的方式是利用`std::stringstream`结合循环来实现这种转换:
```cpp
#include <sstream>
#include <string>
std::string decimalToBase(int decimal, int base) {
std::ostringstream oss;
oss << std::dec; // 默认是十进制
while (decimal > 0) {
oss << (decimal % base);
decimal /= base;
}
if (base == 16)
oss << "h"; // 添加'h'表示十六进制
else
oss << ""; // 对于其他进制无需添加额外标识
return oss.str();
}
// 使用示例
int main() {
int decimal = 255;
std::string hex = decimalToBase(decimal, 16);
// hex now contains "ff"
return 0;
}
```
阅读全文