如果有错请评论指出;参考: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; }