帮我用C++语言设计一个类,其实现将十进制数转换为36进制,超过9之后使用大写字母A-Z代表10-36
时间: 2024-02-09 14:08:07 浏览: 24
好的,我可以帮您设计一个类,以下是代码实现:
```cpp
#include <string>
#include <algorithm>
class DecimalTo36 {
public:
DecimalTo36() {}
~DecimalTo36() {}
std::string convert(int num) {
std::string res;
while (num > 0) {
int mod = num % 36;
if (mod < 10) {
res += std::to_string(mod); // 小于 10 直接加到字符串中
} else {
res += ('A' + (mod - 10)); // 大于等于 10 加上 'A'-'Z'
}
num /= 36;
}
std::reverse(res.begin(), res.end()); // 字符串翻转
return res;
}
};
```
这个类有一个 `convert` 方法,接受一个十进制数 `num`,返回一个 36 进制数的字符串表示,其中大于等于 10 的数用大写字母 A-Z 代替。例如:
```cpp
int main() {
DecimalTo36 d2t;
int num = 123456789;
std::string res = d2t.convert(num);
std::cout << res << std::endl; // 输出 "2I35V9"
return 0;
}
```