进制转换的c语言编程代码是什么

worktile 其他 12

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在C语言中,可以通过以下代码实现进制转换:

    #include <stdio.h>
    
    // 函数声明
    void decimalToBinary(int decimal);
    void decimalToOctal(int decimal);
    void decimalToHexadecimal(int decimal);
    
    int main() {
        int decimal;
    
        printf("请输入一个十进制数:");
        scanf("%d", &decimal);
    
        printf("转换为二进制:");
        decimalToBinary(decimal);
    
        printf("转换为八进制:");
        decimalToOctal(decimal);
    
        printf("转换为十六进制:");
        decimalToHexadecimal(decimal);
    
        return 0;
    }
    
    // 十进制转二进制
    void decimalToBinary(int decimal) {
        int binary[32];  // 用于存储二进制数的数组
        int i = 0;
    
        while (decimal > 0) {
            binary[i] = decimal % 2;
            decimal = decimal / 2;
            i++;
        }
    
        // 从后往前输出二进制数
        for (int j = i - 1; j >= 0; j--) {
            printf("%d", binary[j]);
        }
    
        printf("\n");
    }
    
    // 十进制转八进制
    void decimalToOctal(int decimal) {
        int octal[32];  // 用于存储八进制数的数组
        int i = 0;
    
        while (decimal > 0) {
            octal[i] = decimal % 8;
            decimal = decimal / 8;
            i++;
        }
    
        // 从后往前输出八进制数
        for (int j = i - 1; j >= 0; j--) {
            printf("%d", octal[j]);
        }
    
        printf("\n");
    }
    
    // 十进制转十六进制
    void decimalToHexadecimal(int decimal) {
        char hexadecimal[32];  // 用于存储十六进制数的数组
        int i = 0;
    
        while (decimal > 0) {
            int remainder = decimal % 16;
    
            if (remainder < 10) {
                hexadecimal[i] = remainder + '0';  // 将数字转换为字符
            } else {
                hexadecimal[i] = remainder + 55;  // 将余数转换为十六进制字母
            }
    
            decimal = decimal / 16;
            i++;
        }
    
        // 从后往前输出十六进制数
        for (int j = i - 1; j >= 0; j--) {
            printf("%c", hexadecimal[j]);
        }
    
        printf("\n");
    }
    

    以上代码实现了将输入的十进制数转换为二进制、八进制和十六进制的功能。通过调用相应的函数,可以将十进制数转换为对应进制的数值,并输出结果。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    下面是一个将十进制数转换为其他进制数(二进制、八进制、十六进制)的C语言编程代码示例:

    #include <stdio.h>
    
    void convertToBinary(int decimalNum) {
        int binaryNum[32];
        int i = 0;
    
        while (decimalNum > 0) {
            binaryNum[i] = decimalNum % 2;
            decimalNum = decimalNum / 2;
            i++;
        }
    
        printf("二进制数为:");
        for (int j = i - 1; j >= 0; j--) {
            printf("%d", binaryNum[j]);
        }
        printf("\n");
    }
    
    void convertToOctal(int decimalNum) {
        int octalNum[100];
        int i = 0;
    
        while (decimalNum > 0) {
            octalNum[i] = decimalNum % 8;
            decimalNum = decimalNum / 8;
            i++;
        }
    
        printf("八进制数为:");
        for (int j = i - 1; j >= 0; j--) {
            printf("%d", octalNum[j]);
        }
        printf("\n");
    }
    
    void convertToHexadecimal(int decimalNum) {
        char hexadecimalNum[100];
        int i = 0;
    
        while (decimalNum > 0) {
            int remainder = decimalNum % 16;
            if (remainder < 10) {
                hexadecimalNum[i] = remainder + 48;
            } else {
                hexadecimalNum[i] = remainder + 55;
            }
            decimalNum = decimalNum / 16;
            i++;
        }
    
        printf("十六进制数为:");
        for (int j = i - 1; j >= 0; j--) {
            printf("%c", hexadecimalNum[j]);
        }
        printf("\n");
    }
    
    int main() {
        int decimalNum;
    
        printf("请输入一个十进制数:");
        scanf("%d", &decimalNum);
    
        convertToBinary(decimalNum);
        convertToOctal(decimalNum);
        convertToHexadecimal(decimalNum);
    
        return 0;
    }
    

    这段代码首先定义了三个函数:convertToBinaryconvertToOctalconvertToHexadecimal,分别用于将十进制数转换为二进制、八进制和十六进制。然后在main函数中,先获取用户输入的十进制数,然后依次调用这三个函数进行转换,并输出结果。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    进制转换是将一个数从一种进制表示转换为另一种进制表示。在C语言中,可以使用以下代码实现进制转换。

    #include <stdio.h>
    
    // 函数声明
    void decimalToBinary(int decimal);
    void binaryToDecimal(int binary);
    void decimalToOctal(int decimal);
    void octalToDecimal(int octal);
    void decimalToHexadecimal(int decimal);
    void hexadecimalToDecimal(char hexadecimal[]);
    
    int main() {
        int choice;
        int decimal;
        int binary;
        int octal;
        char hexadecimal[100];
    
        while (1) {
            printf("请选择转换类型:\n");
            printf("1. 十进制转二进制\n");
            printf("2. 二进制转十进制\n");
            printf("3. 十进制转八进制\n");
            printf("4. 八进制转十进制\n");
            printf("5. 十进制转十六进制\n");
            printf("6. 十六进制转十进制\n");
            printf("0. 退出\n");
            printf("请输入您的选择:");
            scanf("%d", &choice);
    
            switch (choice) {
                case 1:
                    printf("请输入一个十进制数:");
                    scanf("%d", &decimal);
                    decimalToBinary(decimal);
                    break;
                case 2:
                    printf("请输入一个二进制数:");
                    scanf("%d", &binary);
                    binaryToDecimal(binary);
                    break;
                case 3:
                    printf("请输入一个十进制数:");
                    scanf("%d", &decimal);
                    decimalToOctal(decimal);
                    break;
                case 4:
                    printf("请输入一个八进制数:");
                    scanf("%d", &octal);
                    octalToDecimal(octal);
                    break;
                case 5:
                    printf("请输入一个十进制数:");
                    scanf("%d", &decimal);
                    decimalToHexadecimal(decimal);
                    break;
                case 6:
                    printf("请输入一个十六进制数:");
                    scanf("%s", hexadecimal);
                    hexadecimalToDecimal(hexadecimal);
                    break;
                case 0:
                    printf("退出程序\n");
                    return 0;
                default:
                    printf("输入错误,请重新输入\n");
                    break;
            }
        }
    
        return 0;
    }
    
    // 十进制转二进制
    void decimalToBinary(int decimal) {
        int binary[32];
        int i = 0;
    
        while (decimal > 0) {
            binary[i] = decimal % 2;
            decimal /= 2;
            i++;
        }
    
        printf("二进制数为:");
        for (int j = i - 1; j >= 0; j--) {
            printf("%d", binary[j]);
        }
        printf("\n");
    }
    
    // 二进制转十进制
    void binaryToDecimal(int binary) {
        int decimal = 0;
        int base = 1;
    
        while (binary > 0) {
            int lastDigit = binary % 10;
            decimal += lastDigit * base;
            binary /= 10;
            base *= 2;
        }
    
        printf("十进制数为:%d\n", decimal);
    }
    
    // 十进制转八进制
    void decimalToOctal(int decimal) {
        int octal[100];
        int i = 0;
    
        while (decimal > 0) {
            octal[i] = decimal % 8;
            decimal /= 8;
            i++;
        }
    
        printf("八进制数为:");
        for (int j = i - 1; j >= 0; j--) {
            printf("%d", octal[j]);
        }
        printf("\n");
    }
    
    // 八进制转十进制
    void octalToDecimal(int octal) {
        int decimal = 0;
        int base = 1;
    
        while (octal > 0) {
            int lastDigit = octal % 10;
            decimal += lastDigit * base;
            octal /= 10;
            base *= 8;
        }
    
        printf("十进制数为:%d\n", decimal);
    }
    
    // 十进制转十六进制
    void decimalToHexadecimal(int decimal) {
        char hexadecimal[100];
        int i = 0;
    
        while (decimal > 0) {
            int remainder = decimal % 16;
            if (remainder < 10) {
                hexadecimal[i] = remainder + '0';
            } else {
                hexadecimal[i] = remainder - 10 + 'A';
            }
            decimal /= 16;
            i++;
        }
    
        printf("十六进制数为:");
        for (int j = i - 1; j >= 0; j--) {
            printf("%c", hexadecimal[j]);
        }
        printf("\n");
    }
    
    // 十六进制转十进制
    void hexadecimalToDecimal(char hexadecimal[]) {
        int decimal = 0;
        int base = 1;
        int length = strlen(hexadecimal);
    
        for (int i = length - 1; i >= 0; i--) {
            if (hexadecimal[i] >= '0' && hexadecimal[i] <= '9') {
                decimal += (hexadecimal[i] - '0') * base;
            } else if (hexadecimal[i] >= 'A' && hexadecimal[i] <= 'F') {
                decimal += (hexadecimal[i] - 'A' + 10) * base;
            }
            base *= 16;
        }
    
        printf("十进制数为:%d\n", decimal);
    }
    

    以上代码实现了十进制到二进制、二进制到十进制、十进制到八进制、八进制到十进制、十进制到十六进制、十六进制到十进制的转换。在主函数中,使用一个循环来不断接收用户的选择,根据选择调用相应的转换函数。每个转换函数根据进制转换的特点进行相应的计算和输出。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部