当前位置:首页C语言 > 正文

C语言数制转换

作者:野牛程序员:2023-08-23 11:40:07C语言阅读 2648

C 语言中可以通过代码实现不同进制(如十进制、二进制、八进制、十六进制)之间的转换。以下是几种常见的数制转换示例:

1. 十进制转其他进制:

#include <stdio.h>

// 十进制转其他进制
void decimalToOther(int num, int base) {
    if (num == 0) {
        printf("0\\n");
        return;
    }

    char result[32]; // 存放转换结果
    int index = 0;

    while (num > 0) {
        int remainder = num % base;
        if (remainder < 10) {
            result[index++] = remainder + '0';
        } else {
            result[index++] = remainder - 10 + 'A';
        }
        num /= base;
    }

    printf("转换结果:");
    for (int i = index - 1; i >= 0; i--) {
        printf("%c", result[i]);
    }
    printf("\\n");
}

int main() {
    int decimalNum;
    printf("请输入一个十进制数:");
    scanf("%d", &decimalNum);

    printf("转换为二进制:");
    decimalToOther(decimalNum, 2);

    printf("转换为八进制:");
    decimalToOther(decimalNum, 8);

    printf("转换为十六进制:");
    decimalToOther(decimalNum, 16);

    return 0;
}

2. 其他进制转十进制:

#include <stdio.h>
#include <math.h>

// 其他进制转十进制
int otherToDecimal(const char *num, int base) {
    int decimalNum = 0;
    int length = strlen(num);

    for (int i = length - 1; i >= 0; i--) {
        int digit;
        if (num[i] >= '0' && num[i] <= '9') {
            digit = num[i] - '0';
        } else if (num[i] >= 'A' && num[i] <= 'F') {
            digit = num[i] - 'A' + 10;
        } else if (num[i] >= 'a' && num[i] <= 'f') {
            digit = num[i] - 'a' + 10;
        } else {
            printf("无效的输入\\n");
            return -1;
        }
        decimalNum += digit * pow(base, length - 1 - i);
    }

    return decimalNum;
}

int main() {
    char num[32];
    int base;

    printf("请输入一个数字和它的进制(如 101 2):");
    scanf("%s %d", num, &base);

    int decimalNum = otherToDecimal(num, base);
    if (decimalNum != -1) {
        printf("转换为十进制:%d\\n", decimalNum);
    }

    return 0;
}

以上代码示例演示了十进制与其他进制之间的相互转换,具体转换方式可以根据进制的特点来处理。需要注意输入的合法性以及不同进制的表示方式。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击