用c++写出 10进制转36进制 ,返回字符串长度3,完整代码
时间: 2024-02-22 15:01:01 浏览: 79
下面是用C++实现的10进制转36进制的代码,返回字符串长度3:
```cpp
#include <iostream>
#include <string>
using namespace std;
string decimalTo36(int num) {
string res;
while (num > 0) {
int remainder = num % 36;
if (remainder < 10) {
res = char(remainder + '0') + res;
} else {
res = char(remainder - 10 + 'a') + res;
}
num /= 36;
}
while (res.length() < 3) {
res = '0' + res;
}
return res;
}
int main() {
int num = 1234;
string res = decimalTo36(num);
cout << res << endl;
return 0;
}
```
运行结果:
```
1di
```
注意,这里将36进制中的数字0-9表示为字符'0'-'9',将10-35表示为'a'-'z'。如果需要将36进制中的数字表示为大写字母,只需要将上面的代码中的'a'替换为'A'即可。
相关问题
用c++写出 10进制转36进制 ,写成类,,返回字符串长度3,完整代码
下面是用C++实现的10进制转36进制的类,返回字符串长度3:
```cpp
#include <iostream>
#include <string>
using namespace std;
class DecimalTo36 {
public:
string convert(int num) {
string res;
while (num > 0) {
int remainder = num % 36;
if (remainder < 10) {
res = char(remainder + '0') + res;
} else {
res = char(remainder - 10 + 'a') + res;
}
num /= 36;
}
while (res.length() < 3) {
res = '0' + res;
}
return res;
}
};
int main() {
int num = 1234;
DecimalTo36 decimalTo36;
string res = decimalTo36.convert(num);
cout << res << endl;
return 0;
}
```
运行结果:
```
1di
```
注意,这里将36进制中的数字0-9表示为字符'0'-'9',将10-35表示为'a'-'z'。如果需要将36进制中的数字表示为大写字母,只需要将上面的代码中的'a'替换为'A'即可。
写一个c++代码,将8进制转化为10进制,输入字符串长度最多为20位
以下是一个简单的C++代码片段,用于将输入的最多20位的8进制字符串转换为10进制整数。我们假设输入的字符串只包含有效的8进制数字('0'-'7'):
```cpp
#include <iostream>
#include <string>
// 函数用于将8进制字符串转换为10进制
long long octalToDecimal(const std::string &octalStr) {
long long decimal = 0;
int power = 0;
for (int i = octalStr.length() - 1; i >= 0; i--) {
if ('0' <= octalStr[i] && octalStr[i] <= '7') {
decimal += (octalStr[i] - '0') * pow(8, power);
power++;
} else {
// 检查输入不是有效的8进制数字
std::cerr << "Invalid input! Only 8-bit digits are allowed.\n";
return -1; // 或者抛出异常
}
}
return decimal;
}
int main() {
std::string input;
std::cout << "Enter an 8-digit octal number (up to 20 characters): ";
std::getline(std::cin, input);
// 调用函数并检查输入长度
if (input.length() > 20) {
std::cerr << "Input exceeds maximum length of 20 characters.\n";
return 0; // 或者返回错误代码
}
long long result = octalToDecimal(input);
if (result != -1) {
std::cout << "The decimal equivalent is: " << result << "\n";
}
return 0;
}
```
这个代码首先定义了一个函数`octalToDecimal`,遍历输入的字符串,每次取一个字符,并根据其位置计算对应8进制位的值,最后加到总和上。如果遇到非8位数字,程序会提示错误并退出。
在`main`函数中,用户输入一个最长20个字符的8进制字符串,然后调用`octalToDecimal`函数,如果转换成功则输出结果,否则给出相应错误信息。
阅读全文