创作人QQ:851301776,邮箱:lfr890207@163.com 欢迎大家进行技术交流,本博客主要是自己的学习经验,只为每天进步一点!
个人座右铭: 1.没有横空出生,只要厚积一定要发。 2.你可以不受过高等教育,你可以不上学,但你必须学习
1.将数组中的16进制数转换为字符串
1.概述
例如,我们收到16进制数(0)的一包数据xA1,0xB1,0xC1,0xD1)结果是:将16进制数据转换为字符串A1B2C1D1.用途:写日志或其他特殊用法。
2.掩码
void hex_to_asciistring(u8* str,u32 size,u8* str1) { u8 deposit [2]; u16 i=0; u8 j = 0; for(i=0;i<size;i ){ deposit[1] = str[i] & 0x0F; deposit[0] = (str[i] &0xF0) >> 4; for(j = 0; j < 2; j ){ switch(deposit[j]){ case 0x00: str1[i*2 j]='0'; break; case 0x01: str1[i*2 j]='1'; break; case 0x02: str1[i*2 j]='2'; break; case 0x03: str1[i*2 j]='3'; break; case 0x04: str1[i*2 j]='4'; break; case 0x05: str1[i*2 j]='5'; break; case 0x06: str1[i*2 j]='6'; break; case 0x07: str1[i*2 j]='7'; break; case 0x08: str1[i*2 j]='8'; break; case 0x09: str1[i*2 j]='9'; break; case 0x0A: str1[i*2 j]='A'; break; case 0x0B: str1[i*2 j]='B'; break; case 0x0C: str1[i*2 j]='C'; break; case 0x0D: str1[i*2 j]='D'; break; case 0x0E: str1[i*2 j]='E'; break; case 0x0F: str1[i*2 j]='F'; break; default: return ; } } } return ; }
二、将某一十六进制整数转换为字符串
1.概述
作用:整数0xA1B2.转换为字符串A1B2”
2.掩码
int hex2str(unsigned int data, char* s, int len) { int i; s[len] = 0; for (i = len - 1; i >= 0; i--, data >>= 4) { if ((data & 0xf) <= 9) s[i] = (data & 0xf) '0'; else s[i] = (data & 0xf) 'A' - 0x0a; } return 1; }