进制转换
进制转换
-
将P进制数转换为10进制
int y = 0,product = 1;//product在循环中会不断乘p,等到1,p,p^2. while(x != 0){ y = y + (x % 10) * product;//x % 10是为了每次获取x的个位数 x = x /10;//去掉x的个位 product = product * P; }
-
将十进制数转换为Q进制数z:采用除基取余法
int z[40], num = 0;//数组z存放Q进制数y的每一位,num为位数 do{ z[num++] =y % Q; y = y / Q; }while(y != 0);
这里用do...while而不用while是因为:如果十进制数恰好等于0,那么 使用while语句就会使循环直接跳出,导致结果出错。