写一个c++程序实现以下功能:1.其他进制转换为十进制2.十进制转换为其他进制(注意十六进制大写和小写))
时间: 2024-02-12 20:09:22 浏览: 66
计算机考研复试:C++实现进制转换,包括二,十,十六之间相互转换
好的,以下是实现功能的C++程序:
```cpp
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
// 将其他进制转换为十进制
int toDecimal(int num, int base) {
int decimal = 0, power = 0;
while (num > 0) {
int digit = num % 10;
decimal += digit * pow(base, power);
num /= 10;
power++;
}
return decimal;
}
// 将十进制转换为其他进制
string fromDecimal(int num, int base) {
string result = "";
while (num > 0) {
int digit = num % base;
if (digit < 10) {
result = to_string(digit) + result;
} else {
result = (char)(digit - 10 + 'A') + result;
}
num /= base;
}
return result;
}
int main() {
int num, base;
cout << "请输入要转换的数和它的进制(例如:10101 2):" << endl;
cin >> num >> base;
// 其他进制转换为十进制
int decimal = toDecimal(num, base);
cout << "转换为十进制的结果为:" << decimal << endl;
// 十进制转换为其他进制
string result = fromDecimal(decimal, base);
cout << "转换为" << base << "进制的结果为:" << result << endl;
return 0;
}
```
程序中使用了两个函数:`toDecimal`和`fromDecimal`。`toDecimal`函数将其他进制的数转换为十进制,`fromDecimal`函数将十进制的数转换为其他进制。在`main`函数中,我们先输入要转换的数和它的进制,然后调用这两个函数进行转换,并输出结果。注意在`fromDecimal`函数中,当转换为16进制时,需要将10~15分别转换为A~F。
阅读全文