进制转换通用版 发表于 2020-04-26 | 分类于 C | 阅读次数: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647/*题目:x进制转为y进制思路:先将x进制的数转为10进制,再将10进制转为y进制(将10进制作为桥梁)注:本方法适用性强,可处理位数较多的x进制数*/#include <stdio.h>#include <string.h>int main(){ int x,y; scanf("%d %d",&x,&y); char s[105]; scanf("%s",s); int ans=0;//存储10进制数 int len=strlen(s); //将x进制的数转为10进制(非常规方法,不易理解) for(int i=0;i<len;++i) { ans=ans*x; if(s[i]>='0'&&s[i]<='9') ans+=(s[i]-'0'); else ans+=(s[i]-'A'+10); } //将10进制转为y进制(常规方法,容易理解) char out[105]; int cnt=0; while(ans>0) { int w=(ans%y); if(w<10) out[cnt++]=w+'0'; else out[cnt++]=(w-10)+'A'; ans/=y; } //打印y进制结果 for(int i=cnt-1;i>=0;i--) printf("%c",out[i]);} 喜欢所以热爱,坚持干货分享,欢迎订阅我的微信公众号 呐,请我吃辣条 打赏 微信支付 支付宝