
解题思路:
先转十进制,再转需要转的进制。网上有人没转十进制直接做,但是我感觉还是转一下方便点。
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int B, b, shu, cnt, ans[50], arr;
string s;
char ch;
int main()
{
cin >> B >> s;
for (int i = s.size() - 1; i >= 0; --i) {
ch = s[i];
if (ch >= 'A' && ch <= 'F') shu += pow(B, cnt++) * (ch - 55);
else shu += pow(B, cnt++) * (ch - 48);
}
cin >> b;
while (shu) {
ans[arr++] = shu % b;
shu /= b;
}
for (int i = arr - 1; i >= 0; --i) {
if (ans[i] >= 10) {
ch = 55 + ans[i];
cout << ch;
}
else cout << ans[i];
}
return 0;
}
这篇博客介绍了如何将十六进制数转换为其他任意进制数的方法,通过首先将输入的十六进制数转换为十进制,然后将十进制数转换为目标进制。代码示例使用C++实现,包括了字符到数值的映射处理。
1779

被折叠的 条评论
为什么被折叠?



