资讯详情

C语言将16进制字符数组转为字符串

例如,我们收到16进制数(0)的一包数据xA1,0xB1,0xC1,0xD1)结果是:将16进制数据转换为字符串A1B1C1D1.用途:写日志或其他特殊用法。使用方便%s打印出来查看

#define u8 unsigned char #define u32 unsigned int  int main() { 
         unsigned char SN[6] = { 
        0x00,0x00,0x00,0x00,0x57,0xe4 };    unsigned char sn[6];  hex_to_asciistring(SN, 6, sn);    printf("SN=%s\n,",sn);///输出结果为000000057e4”  }  //参数1为原始数据,参数2为数组长度,参数3为转出的字符串 void hex_to_asciistring(u8* str,u32 size,u8* str1) { 
         u8 deposit [2];  int 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 ; } 

标签: 低压并联电容器串接xd1电抗器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台