牛骨文教育服务平台(让学习变的简单)
博文笔记

C语言 十六进制字符转换为字符串

创建时间:2017-10-12 投稿人: 浏览次数:389

我们知道,当在进行设备通信(eg:串口)的时候,通信数据都是16进制字符,如果需要记录日志,16进制字符是无法直接写入文本的(乱码),这是就需要将16进制字符转换为字符串


方法如下:

#include <stdio.h>

unsigned char  s_des[100] = {0};
int length  = 9;
unsigned char s_src[length]  =  {0xFE,0x01,0x52,0xFF,0xEF,0xBA,0x35,0x90,0xFA};


unsigned char IntToHexChar(unsigned char c)
{
if (c > 9)
return (c + 55);
else
return (c + 0x30);
}




int main()
{
unsigned char temp;
int i;
for (i=0; i<length; i++) 
{
temp = s_src[i]&0xf0;
s_des[2*i] = IntToHexChar(temp >> 4);
temp = s_src[i]&0x0f;
s_des[2*i+1] = IntToHexChar(temp);
}
printf("*** %s *** ",s_des);
return 0;
}


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。