欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-15 13:01:41
...
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型

关于将数直接用16进制读进来 并 转化成长整型

char fir[10];
long int li1;
li1 = strtol (fir,NULL,16);

其中的16也可以改成任何数值 第二个参数原本是一个指针指向了第一个不能被转换的位置 因为在这里 这个指针无作用 所以可以直接改成NULL

相关标签: 进制转化