#include <stdio.h>

void intToHexStr(int num, char* str) { int i = 0; int temp;

// 将每一位的十六进制数转换为对应的字符
while (num != 0) {
    temp = num % 16;
    
    if (temp < 10) {
        str[i] = temp + '0';
    } else {
        str[i] = temp - 10 + 'A';
    }
    
    num = num / 16;
    i++;
}

// 反转字符串
int length = i;
for (int j = 0; j < length / 2; j++) {
    char temp = str[j];
    str[j] = str[length - j - 1];
    str[length - j - 1] = temp;
}

// 添加字符串结束符
str[length] = '\0';

}

int main() { int num = 0x15; char str[10];

intToHexStr(num, str);

printf("%s\n", str);

return 0;

}

这个函数将一个整数转换为十六进制字符串。它通过不断地对整数进行除以16的取余操作,将每一位的十六进制数转换为对应的字符。然后,它反转字符串的顺序,将其变为正确的顺序。最后,它在字符串的末尾添加了一个结束符'\0'。

运行此程序将输出字符串"15"。

C语言函数:将十六进制数转换为字符串 - 无需库函数

原文地址: https://www.cveoy.top/t/topic/pYj1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录