对于一个P进制的数字,若要转化为Q进制,则需要两部:
第一步:
将P进制的数字转化为10进制
y=a1*p(n-1)+a2*p(n-2)+....+an-1p+an
如何实现?
int x,p;
int y=0,pro=1;//p表示进制
while(x!=0){
y=y+(x%10)*pro;
x=x/10;
pro=p*pro;
}
//将 十进制转换为q进制,除基取余法;
/*例如11转换为2进制
首先11%2=5 余1
5%2=2 余1
2%2=1 余0
1%2=0 余1
所以十一的二进制为 1011
*/
int z[40],num=0;
do{
z[num++]=y%q;
y=y/q;
}while(y!=0);//当商不为0时循环
例题 PAT1022