10进制转x进制c++编程
时间: 2024-12-22 21:10:40 浏览: 7
在C++中,将十进制数转换为其他进制(如二进制、八进制或十六进制)可以使用`std::bitset`、位运算符或者是自定义函数实现。这里提供一个基本的`std::bitset`示例,用于将十进制整数转换为任意进制:
```cpp
#include <iostream>
#include <bitset>
// 函数模板将十进制转换为任意进制
template<int NBASE>
std::string decimalToBase(int dec) {
std::stringstream ss;
std::bitset<NBASE> binary(dec);
while (binary) {
ss << binary.to_ulong() % NBASE;
binary >>= 1; // 左移一位相当于除以NBASE取余
}
return ss.str();
}
int main() {
int decimal = 42;
std::cout << "Decimal to Binary: " << decimalToBase<2>(decimal) << std::endl;
std::cout << "Decimal to Octal: " << decimalToBase<8>(decimal) << std::endl;
std::cout << "Decimal to Hexadecimal: " << decimalToBase<16>(decimal) << std::endl;
return 0;
}
```
在这个例子中,`decimalToBase`函数接收一个基数`NBASE`作为模板参数,然后使用`std::bitset`来存储二进制形式的数字,并逐位提取出来,形成相应的进制字符串。
阅读全文