如果有错请评论指出;参考:https://blog.csdn.net/langmanqishizaijia/article/details/51087443
#include<iostream>
#include<bitset>
#include<string>
using namespace std;
//in,是输入进来的数
//out是输出的字
//begin表示输入进制
//end表示输出的进制
void change(string in,string &out, long begin,long end){
//首先转化成十进制;
int sum = 0;
for (int i = 0; i < in.length;i++){
long t = in[i];
if (t>=0 && t<=9){
sum = t + sum*begin;
}
else sum = (t - 'A' + 10) + sum*begin;
}
//十进制转成end进制
out = "";
while (1){
long j = sum%end;
sum /= end;
if (j <= 9) out = to_string(j) + out;
else out = to_string(j - 10 + 'A' ) + out;
if (num == 0)break;
}
cout << sum;
}
int main(){
/*进制输出
int i;
cin >> i;
cout << std::hex << i<<endl;
cout << std::oct << i << endl;
cout << std::dec << i << endl;
cout << bitset<8>(i) << endl;
*/
string in,out;
long begin, end;
while (cin >> in >> begin>>end){
change(in, out, begin, end);
cout << out;
}
return 0;
}