数制转换
注意进制转换时对0的特殊处理。
int a,b;
string s;
char tran(int x)
{
if(x >= 0 && x <= 9) return x+'0';
else return 'A'+x-10;
}
int get(char c)
{
if(isdigit(c)) return c-'0';
else
{
c=toupper(c);
return c-'A'+10;
}
}
int main()
{
while(cin>>a>>s>>b)
{
int res=0;
for(int i=0;i<s.size();i++)
{
int k=get(s[i]);
res=res*a+k;
}
vector<char> v;
if(res == 0) v.pb('0');
while(res)
{
char c=tran(res%b);
v.pb(c);
res/=b;
}
reverse(v.begin(),v.end());
for(auto t:v) cout<<t;
cout<<endl;
}
//system("pause");
return 0;
}