任意进制转换
#include<iostream>
#include<string.h>
using namespace std;
void DectoBin(int n,int num)
{//十进制到任意进制
int i=0;
int s[100]={0};
while(num!=0)
{
s[i]=num%n;
num=num/n;
i++;
}
for(int j=i-1;j>=0;j--)
{
cout<<s[j];
}
cout<<endl;
}
void BintoDec(int a,char s[],int b)
{//任意进制转化为十进制 a进制到b进制
int tmp=0;//tmp保存十进制值
int length=strlen(s);
int c=1;//初始时不论是多少进制,最低位权重都是1(常识)
for(int i=length-1;i>=0;i--)
{
int x;//取得当前位上的数字
if(s[i]>='0'&&s[i]<='9')
{
x=s[i]-'0';
}
else if(s[i]>='a'&&s[i]<='z')
{
x=s[i]-'a'+10;
}
else
{
x=s[i]-'A'+10;
}
tmp=tmp+x*c;
c=c*a;
}
DectoBin(b,tmp);
}
int main()
{
int a,b;
char s[40];
while(cin>>a>>s>>b)
{
BintoDec(a,s,b);
}
return 0;
}