用c语言进制转换进制的代码(c语言16进制转换10进制函数)

十进制转二进制

在计算机中,二进制是最常用的进制之一。当我们需要将十进制数转换为二进制数时,可以使用C语言来实现。以下是一个简单的代码示例:

#include <stdio.h>

void decimalToBinary(int num) {
    int binary[32];
    int i = 0;
    
    while (num > 0) {
        binary[i] = num % 2;
        num = num / 2;
        i++;
    }
    
    printf("Binary representation: ");
    
    for (int j = i - 1; j >= 0; j--) {
        printf("%d", binary[j]);
    }
}

int main() {
    int num;
    
    printf("Enter a decimal number: ");
    scanf("%d", &num);
    
    decimalToBinary(num);
    
    return 0;
}

以上代码将提示用户输入一个十进制数,然后调用decimalToBinary函数将其转换为二进制数进行输出。该函数使用一个数组binary来存储每个二进制位的值,然后逆序打印输出,得到最终的二进制表示。

十进制转八进制

八进制是一种基数为8的进制。如果我们要将一个十进制数转换为八进制数,可以使用C语言编写如下代码:

#include <stdio.h>

void decimalToOctal(int num) {
    int octal[100];
    int i = 0;
    
    while (num > 0) {
        octal[i] = num % 8;
        num = num / 8;
        i++;
    }
    
    printf("Octal representation: ");
    
    for (int j = i - 1; j >= 0; j--) {
        printf("%d", octal[j]);
    }
}

int main() {
    int num;
    
    printf("Enter a decimal number: ");
    scanf("%d", &num);
    
    decimalToOctal(num);
    
    return 0;
}

以上代码与二进制转换类似,通过使用数组octal来存储每个八进制位的值,并逆序输出得到最终的八进制表示。

十进制转十六进制

十六进制是一种基数为16的进制。我们可以使用C语言编写以下代码将十进制数转换为十六进制数:

#include <stdio.h>

void decimalToHexadecimal(int num) {
    char hexadecimal[100];
    int i = 0;
    
    while (num > 0) {
        int remainder = num % 16;
        
        if (remainder < 10) {
            hexadecimal[i] = remainder + '0';
        } else {
            hexadecimal[i] = remainder + 'A' - 10;
        }
        
        num = num / 16;
        i++;
    }
    
    printf("Hexadecimal representation: ");
    
    for (int j = i - 1; j >= 0; j--) {
        printf("%c", hexadecimal[j]);
    }
}

int main() {
    int num;
    
    printf("Enter a decimal number: ");
    scanf("%d", &num);
    
    decimalToHexadecimal(num);
    
    return 0;
}

在以上代码中,使用字符数组hexadecimal来存储每个十六进制位的值。当余数小于10时,直接将其转换为对应的字符;当余数大于等于10时,通过ASCII码转换将其转换为对应的'A'到'F'字符。最后将字符数组逆序输出得到十六进制表示。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/cyyxrn.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年7月28日 上午12:20
下一篇 2023年7月28日 上午12:21

猜你喜欢