如何用C++编写一个将十进制数转换为任意进制(如二进制或八进制)的函数?
时间: 2024-12-15 11:18:37 浏览: 68
在C++中,你可以创建一个通用的函数来将十进制数转换为任意进制。这里是一个简单的例子,它使用字符串来存储结果:
```cpp
#include <iostream>
#include <string>
// 定义一个辅助函数来生成特定基数的数字字符
char getDigit(int num, int radix) {
if (num >= radix)
return '0' + num % radix;
else
return 'A' - 10 + num; // 使用大写字母A-D代表10-13
}
// 十进制转任意进制
std::string decimalToBase(int decimal, int radix) {
std::string result = "";
while (decimal > 0) {
result = getDigit(decimal % radix, radix) + result;
decimal /= radix;
}
return result;
}
int main() {
int decimalNumber = 42;
int base = 8; // 转换为八进制
std::cout << "Decimal " << decimalNumber << " in base " << base << " is: " << decimalToBase(decimalNumber, base) << std::endl;
return 0;
}
```
这个`decimalToBase`函数的工作原理是从左到右不断地除以目标基数并取余数,然后将得到的余数添加到结果字符串的前面。注意,对于较大的基数(比如16),我们可能会用到十六进制字符(A-F)。
阅读全文
相关推荐



















