您的位置:首页 > 其它

//任意进制间转化

2016-03-14 17:21 288 查看
//任意进制间转化

#define MAXN 40
void conversion(string s1,char s2[],int d1,int d2)//任意间进制转化
{
int sum=0,t;
for(int i=0;i<s1.size();i++)
{
if(s1[i]>='0'&&s1[i]<=9)
t=s1[i]-'0';
else
t=s1[i]-'A'+10;
sum=sum*d1+t;
}
t=0;int d=0;
for(;;)
{
t=sum%d2;
if(t>=0&&t<=9)
s2[d++]='0'+t;
else
s2[d++]=t-10+'A';
sum=sum/d2;
if(sum==0)break;
}
for(int i=0;i<d/2;i++)
{
char temp=s2[i];s2[i]=s2[d-1-i];s2[d-1-i]=temp;
}
s2[d]='\0';
for(int i=0;s2[i]!='\0';i++)
cout<<s2[i];
cout<<endl;
}

//输入函数
void input()
{
int d1,d2;//输入进制
char s1[MAXN],s2[MAXN];
cin>>d1;
cin>>s1;
cin>>d2;//输出进制
conversion(s1,s2,d1,d2);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: