任意进制转换为任意进制c++
时间: 2023-11-03 22:05:59 浏览: 185
C++任意进制转换
5星 · 资源好评率100%
以下是一个将任意进制数转换为任意进制数的 C++ 代码示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 将任意进制数转换为十进制数
int toDecimal(string num, int base) {
int result = 0;
int power = 1;
int len = num.size();
for (int i = len - 1; i >= 0; i--) {
int digit = isdigit(num[i]) ? num[i] - '0' : num[i] - 'A' + 10;
if (digit >= base) {
cout << "非法输入!" << endl;
return -1;
}
result += digit * power;
power *= base;
}
return result;
}
// 将十进制数转换为任意进制数
string fromDecimal(int num, int base) {
string result = "";
while (num > 0) {
int digit = num % base;
char ch = (digit >= 10) ? ('A' + digit - 10) : (digit + '0');
result = ch + result;
num /= base;
}
return result;
}
// 主函数
int main() {
string num;
int base1, base2;
cout << "请输入要转换的数字:";
cin >> num;
cout << "请输入数字的原始进制:";
cin >> base1;
cout << "请输入数字要转换的进制:";
cin >> base2;
int decimal = toDecimal(num, base1);
if (decimal == -1) {
return 0;
}
string result = fromDecimal(decimal, base2);
cout << num << "(" << base1 << "进制) = " << result << "(" << base2 << "进制)" << endl;
return 0;
}
```
该程序首先要求用户输入要转换的数字、数字的原始进制和数字要转换的进制。然后,它将使用 `toDecimal` 函数将数字从原始进制转换为十进制,并使用 `fromDecimal` 函数将其转换为指定的进制。最后,程序将打印转换后的数字。
阅读全文