进制转换
1.将P进制数x转换为十进制数y:
int p_to_10(int x,int P ){
int y = 0,product =1; //product 在循环中会不断成P,
//得到1,P,P^2...
while(x!=0){
y = y+(x%10)*product; //x%10是为了每次获取x的个位数
x /= 10; //去掉x的个位
prodcut *= P;
}
return y;
}
2.将十进制数y转换为Q进制数z(将十进制数y转换为Q进制,结果存放于数组z):
//用除k取余法。
int z[40],num=0; //数组z存放Q进制数y的每一位,num为位数
void 10_to_q(int y,int Q){
do{
z[num++] = y%Q; //除Q取余
y /= Q; //
}while(y!=0);
}