进制转换其实主要是两个问题,十进制数转换为Q进制数,Q进制数转换为十进制数,当然也有P进制数转换为Q进制数。
1.将P进制数转换为十进制数y在这里插入代码片
思路很简单,看代码很容易就明白了
int y=0,product=1;
while(x!=0){
y = y + (x%10)*product;
x = x/10;
product = product*P;
}
2.将十进制数转换为Q进制数
这里采用的是”除基取余法“。所谓的基,是值要转换的进制Q,因此除基取余法的意思就是每次将十进制数除以Q,然后将得到的余数作为低位进行存储,而商则继续除以Q并进行上面的操作,最后当商为0时,将所有位从高位到低位进行输出。
int a[40],sum=0;
do{
a[num++]=y%Q;
y=y/10;
}while(y!=0);
3.p进制数转换为q进制数
先将p进制数转换为十进制数,再将得到的这个十进制数转换为q进制数并输出。