浅析Hex和ascii之间如何转换

方法一:

  1. int Hex2Ascii(char* hex, char* ascii)
  2. {
  3. int len = strlen(hex), tlen, i, cnt;
  4. for (i = 0, cnt = 0, tlen = 0; i<len; i++)
  5. {
  6. char c = toupper(hex[i]);
  7. if ((c>=0&& c<=9) || (c>=A&& c<=F))
  8. {
  9. BYTE t = (c >= A) ? c - A + 10 : c - 0;
  10. if (cnt)
  11. ascii[tlen++] += t, cnt = 0;
  12. else
  13. ascii[tlen] = t << 4, cnt = 1;
  14. }
  15. }
  16. return tlen;
  17. }

方法二:

  1. int Ascii2Hex(char* ascii, char* hex)
  2. {
  3. int i, len = strlen(ascii);
  4. char chHex[] = "0123456789ABCDEF";
  5. for (i = 0; i<len; i++)
  6. {
  7. hex[i*3] = chHex[((BYTE)ascii[i]) >> 4];
  8. hex[i*3 +1] = chHex[((BYTE)ascii[i]) & 0xf];
  9. hex[i*3 +2] = ;
  10. }
  11. hex[len * 3] = ;
  12. return len * 3;
  13. }
  14. //! 发送数据

经验分享 程序员 微信小程序 职场和发展