进制转换

进制转换

  • 将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语句就会使循环直接跳出,导致结果出错。

posted @ 2021-08-01 23:37  shiff  阅读(144)  评论(0编辑  收藏  举报