- C++
进制转换
- 2024-7-6 16:24:52 @
程序实现将n进制数转换成m进制。
//将n进制数字num,转换成m进制数
//(其中2 <= n,m <= 16,n进制数对应的十进制的值不超过int范围)
#include <iostream>
#include <string>
using namespace std;
int main() {
int n, m;
string num;
cin >> n >> num >> m;
//n进制num转换成十进制数ans
int ans = 0, w = 1;
int len = num.length();
for (int i = len - 1; i >= 0; i--){
if ('A' <= num[i] && num[i] <= 'F'){
ans = ans + (num[i] - 'A' + 10) * w;
} else {
ans = ans + (num[i] - '0') * w;
}
w *= n;
}
//十进制数ans转换成m进制
char mnum[100] = {}, cnt = 0;
while (ans != 0){
int tmp = ans % m;
if (tmp >= 10){
mnum[cnt++] = tmp - 10 + 'A';
}else{
mnum[cnt++] = tmp + '0';
}
ans /= m;
}
for (int i = cnt - 1; i >= 0; i--){
cout << mnum[i];
}
return 0;
}
0 条评论
目前还没有评论...