请用数字和大写字母设计一个36位进制,并用c++实现
时间: 2024-02-09 17:08:19 浏览: 27
一个36位进制可以由数字0-9和大写字母A-Z组成。我们可以将数字0-9表示为0-9,将大写字母A-Z表示为10-35,这样就可以设计一个36位进制。下面是一个36位进制的C++实现示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
const string digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string to_base_36(unsigned long long num) {
string result = "";
do {
result = digits[num % 36] + result;
num /= 36;
} while (num > 0);
return result;
}
unsigned long long from_base_36(string num) {
unsigned long long result = 0;
for (int i = 0; i < num.length(); i++) {
int digit = digits.find(num[i]);
result = result * 36 + digit;
}
return result;
}
int main() {
unsigned long long num = 123456789;
string base_36 = to_base_36(num);
cout << "Base 36 of " << num << " is " << base_36 << endl;
unsigned long long new_num = from_base_36(base_36);
cout << "New number from base 36 is " << new_num << endl;
return 0;
}
```
在这个实现中,to_base_36()函数将一个10进制的数字转换为36进制的字符串,from_base_36()函数将一个