c++10进制转换N进制
时间: 2024-10-11 08:09:10 浏览: 32
C++实战篇:进制转换类
在 C++ 中,将十进制数转换成其他进制数(如二进制、八进制或十六进制)可以使用内置函数 `std::to_string` 结合字符串模板 `std::stringstream` 来完成。以下是一个基本的例子,展示如何将十进制转换为任意进制:
```cpp
#include <iostream>
#include <sstream>
#include <string>
// 定义一个通用的转换函数
template<int Base>
std::string decimalToBase(int decimal) {
std::ostringstream oss;
oss << std::bitset<sizeof(decimal)*8>(decimal); // 使用 bitset 来表示二进制形式,然后转换成 string
return oss.str();
}
int main() {
int decimalNumber = 42; // 要转换的十进制数
std::cout << "Decimal to Binary: " << decimalToBase<2>(decimalNumber) << std::endl;
std::cout << "Decimal to Octal: " << decimalToBase<8>(decimalNumber) << std::endl;
std::cout << "Decimal to Hexadecimal: " << decimalToBase<16>(decimalNumber) << std::endl;
return 0;
}
```
在这个例子中,`decimalToBase` 函数接受一个整型数字和一个基数(Base),然后使用 `std::bitset` 将十进制数转换为等效的二进制表示,最后通过 `std::ostringstream` 把二进制位串转换回字符串。
阅读全文