任意进制转换
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
void conversion(string s1,string &s2,long d1,long d2)
{
long num=0,t,i=0;
if(s1[0]!='-')
{
for(i=0;i<s1.size();i++)
{
if(s1[i]>='0'&&s1[i]<='9')
{
t=s1[i]-'0';
}
else
{
t=s1[i]-'A'+10;
}
num=num*d1+t;
}
}
else
{
for(i=1;i<s1.size();i++)
{
if(s1[i]>='0'&&s1[i]<='9')
{
t=s1[i]-'0';
}
else
{
t=s1[i]-'A'+10;
}
num=num*d1+t;
}
}
t=0;
s2="";
while(num!=0)
{
t=num%d2;
num=num/d2;
if(t>=0&&t<=9)
{
s2=to_string(t)+s2;
}
else
{
s2=char (t-10+'A')+s2;
}
}
}
int main(){
string str1, str2;
long d1=10, d2;
while (cin >>str1>>d2){
conversion(str1, str2,d1, d2);
if(str1[0]!='-')
cout << str2 << endl;
else
cout<<"-"<<str2<<endl;
}
return 0;
}