C++进制转换代码,要求:输入A进制的B,和目标进制M,输出B转成M进制的结果,(M<32)
(备注:不要使用系统进制转换函数,纯代码)
【以下回答由 GPT 生成】
你可以使用以下步骤来实现进制转换的功能:
string DecimalToBase(int num, int base) {
string result = "";
while (num > 0) {
int remainder = num % base;
if (remainder < 10) {
result = to_string(remainder) + result; // 添加余数到结果的最前面
} else {
result = char('A' + remainder - 10) + result; // 添加对应的字母到结果的最前面
}
num = num / base; // 更新被除数
}
return result;
}
int BaseToDecimal(string num, int base) {
int result = 0;
int power = 1;
for (int i = num.length() - 1; i >= 0; i--) {
if (num[i] >= '0' && num[i] <= '9') {
result += (num[i] - '0') * power;
} else if (num[i] >= 'A' && num[i] <= 'Z') {
result += (num[i] - 'A' + 10) * power;
}
power *= base;
}
return result;
}
#include <iostream>
using namespace std;
int main() {
int baseA, baseM;
int numberB;
cout << "请输入目标进制(小于32):";
cin >> baseM;
cout << "请输入需要转换的数的原始进制:";
cin >> baseA;
cout << "请输入需要转换的数:";
cin >> numberB;
string result = DecimalToBase(numberB, baseA);
cout << "转换后的结果为:" << result << endl;
return 0;
}
这样,你就可以实现一个简单的进制转换程序了。
【相关推荐】