十进制转十六进制c语言代码

以下是一个将十进制数转换为十六进制数的C语言代码示例:

#include <stdio.h>

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 + 'A' - 10;
        }

        decimal /= 16;
        i++;
    }

    printf("十六进制数为: ");
    for (int j = i - 1; j >= 0; j--) {
        printf("%c", hexadecimal[j]);
    }
}

int main() {
    int decimal;

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

    decimalToHexadecimal(decimal);

    return 0;
}

这个代码示例中,我们定义了一个函数decimalToHexadecimal,它接受一个十进制数作为参数,并将其转换为十六进制数。在函数中,我们使用一个字符数组hexadecimal来存储转换后的十六进制数的每一位。我们使用一个循环来不断地将十进制数除以16,并将余数转换为对应的十六进制字符存储到数组中。最后,我们逆序输出数组中的字符,即得到了转换后的十六进制数。

main函数中,我们首先从用户输入中获取一个十进制数,然后调用decimalToHexadecimal函数进行转换,并输出结果。

当用户输入一个十进制数后,程序会调用scanf函数将用户输入的值存储在decimal变量中。然后,程序会调用decimalToHexadecimal函数,并将decimal作为参数传递给该函数。

decimalToHexadecimal函数中,我们首先定义了一个字符数组hexadecimal,用于存储转换后的十六进制数的每一位。我们还定义了一个变量i,用于记录数组中存储的字符个数。

接下来,我们使用一个循环来进行十进制到十六进制的转换。在每次循环中,我们使用取余运算符%来获取十进制数除以16的余数,即当前位的十六进制数。如果余数小于10,则将其转换为对应的字符(’0’到’9’的ASCII码值加上余数),并存储到hexadecimal数组中。如果余数大于等于10,则将其转换为对应的十六进制字符(’A’到’F’的ASCII码值加上余数减去10),并存储到hexadecimal数组中。

在每次循环结束后,我们将十进制数除以16,以便进行下一位的转换。同时,将i加1,以记录存储的字符个数。

最后,我们使用一个循环逆序输出hexadecimal数组中的字符,即得到了转换后的十六进制数。

最后,程序会返回到main函数,并执行return 0;语句,表示程序正常结束。