推广 热搜:
 |  行业设备  |  机械制造  |  机器视觉  |  机械自动化  |  仪器仪表  |  工业机器人  |  编程开发  |  嵌入式  |  电子技术  |  工控自动化  |  电工电气 频道

Hex和ASCII相互转换函数

   日期:2018-05-23     浏览:123    评论:0    
核心提示:以下两个函数用于实现十六进制和ASCII码值之间的转换[cpp]view plaincopyintHex2Ascii(char*hex,char*ascii){intlen=strlen
 以下两个函数用于实现十六进制和ASCII码值之间的转换

 

[cpp] view plain copy
 
 
  1. int Hex2Ascii(char* hex, char* ascii)  
  2. {  
  3.     int len = strlen(hex), tlen, i, cnt;  
  4.       
  5.     for (i = 0, cnt = 0, tlen = 0; i<len; i++)  
  6.     {  
  7.         char c = toupper(hex[i]);  
  8.   
  9.         if ((c>='0'&& c<='9') || (c>='A'&& c<='F'))  
  10.         {  
  11.             BYTE t = (c >= 'A') ? c - 'A' + 10 : c - '0';  
  12.   
  13.             if (cnt)  
  14.                 ascii[tlen++] += t, cnt = 0;  
  15.             else  
  16.                 ascii[tlen] = t << 4, cnt = 1;  
  17.         }  
  18.     }  
  19.       
  20.     return tlen;  
  21. }  
  22.   
  23. int Ascii2Hex(char* ascii, char* hex)  
  24. {  
  25.     int i, len = strlen(ascii);  
  26.     char chHex[] = "0123456789ABCDEF";  
  27.                       
  28.     for (i = 0; i<len; i++)  
  29.     {  
  30.         hex[i*3]    = chHex[((BYTE)ascii[i]) >> 4];  
  31.         hex[i*3 +1] = chHex[((BYTE)ascii[i]) & 0xf];  
  32.         hex[i*3 +2] = ' ';  
  33.     }  
  34.   
  35.     hex[len * 3] = '\0';  
  36.   
  37.     return len * 3;  
  38. }  
  39. //! 发送数据  
 
打赏
 
更多>同类编程
0相关评论

推荐图文
推荐编程
点击排行

网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报