C++十进制转x进制(需要支持36进制)
时间: 2024-05-03 21:18:26 浏览: 7
下面是一个C++函数,可以将一个十进制数转换为任意进制(最大支持36进制):
```c++
#include <string>
std::string decimalToX(int decimal, int x) {
std::string result = "";
while (decimal > 0) {
int remainder = decimal % x;
if (remainder < 10) {
result = std::to_string(remainder) + result;
} else {
result = (char)(remainder - 10 + 'A') + result;
}
decimal /= x;
}
return result;
}
```
这个函数接受两个参数:要转换的十进制数和目标进制x。它返回一个字符串,表示转换后的结果。
函数首先定义一个空字符串`result`,用于存储转换后的结果。然后,它使用一个循环来将十进制数转换为目标进制。在每次迭代时,它计算余数并将其添加到`result`中。如果余数小于10,则直接将其转换为字符串并添加到`result`中。如果余数大于等于10,则将其转换为大写字母A到Z之间的字符,并将其添加到`result`中。
当循环结束时,`result`中包含转换后的结果,并将其返回。你可以像这样调用函数:
```c++
std::string result = decimalToX(123, 16); // 将十进制数123转换为16进制
std::cout << result << std::endl; // 输出: "7B"
```