关于任意进制转化成10进制再转化成其他进制

for (i = 0; i < len; i++) {
        r = pow(a, len - i - 1);
        k = r;
    if (num[i] >= 'A' && num[i] <= 'F')
        sum += (num[i] - 55) * r;
    else
        sum += (num[i] - '0') * r;
}

a表示其原先的进制
用字符串读进来,用len求长度
转化成int后用sum求和

while (sum > 0) {
                B[i++] = sum % b;
                sum = sum / b;
            }
            count = i;
            for (j = count - 1; j >= 0; j--) {
                if (B[j] >= 10) {
                    x = B[j] + 55;
                    printf("%c", x);
                } else {
                    printf("%d", B[j]);
                }
            }

用int B数组来先储存 再倒叙输出 输出的时候转化成int型或者char型

猜你喜欢

转载自blog.csdn.net/weixin_43935092/article/details/88551710