在原来二进制转十进制的基础上,其他10以内的进制也是一样的
for(i=strlen(Dg)-1; i>=0; i--)
{
sum+=(Dg[i]-'0')*a;
a*=k;
}
其中k代表的是进制
而考虑到10以外的进制则还要用A~F来表示,则需要稍加修改
sum+=(Dg[i]-'A'+10)*a;
a*=k;
结合之后得到
#include#include int main(void) { char Dg[32]; int sum=0,i,a=1,k; scanf("%s%d",Dg,&k); for(i=strlen(Dg)-1; i>=0; i--) { if(isalpha(Dg[i])) sum+=((Dg[i]-'A')+10)*a; else sum+=(Dg[i]-'0')*a; a*=k; } printf("%d",sum); }
啊嘞,进制转换原来也不是这么难的,你学会了吗
[doge]



