Mac地址和字符串之间的转换

短命女 2022-08-18 14:25 439阅读 0赞

[cpp] view plain copy

  1. std::string MacToStr(UINT8 * pMac,const char chKen/* = ‘:’*/)
  2. {
  3. char szFormat[] = “%02X:%02X:%02X:%02X:%02X:%02X”;
  4. int nLen = strlen(szFormat);
  5. if (chKen != ‘:’)
  6. {
  7. for (int i = 2;i < nLen;i += 3)
  8. {
  9. szFormat[i] = chKen;
  10. }
  11. }
  12. char szMac[32] = {0};
  13. sprintf(szMac, szFormat, pMac[0], pMac[1], pMac[2], pMac[3], pMac[4], pMac[5]);
  14. std::string strRet(szMac);
  15. return strRet;
  16. }
  17. UINT8 charToData(const char ch)
  18. {
  19. switch(ch)
  20. {
  21. case ‘0’: return 0;
  22. case ‘1’: return 1;
  23. case ‘2’: return 2;
  24. case ‘3’: return 3;
  25. case ‘4’: return 4;
  26. case ‘5’: return 5;
  27. case ‘6’: return 6;
  28. case ‘7’: return 7;
  29. case ‘8’: return 8;
  30. case ‘9’: return 9;
  31. case ‘a’:
  32. case ‘A’: return 10;
  33. case ‘b’:
  34. case ‘B’: return 11;
  35. case ‘c’:
  36. case ‘C’: return 12;
  37. case ‘d’:
  38. case ‘D’: return 13;
  39. case ‘e’:
  40. case ‘E’: return 14;
  41. case ‘f’:
  42. case ‘F’: return 15;
  43. }
  44. return 0;
  45. }
  46. bool StrToMac(const char * szMac,UINT8 * pMac)
  47. {
  48. const char * pTemp = szMac;
  49. for (int i = 0;i < 6;++i)
  50. {
  51. pMac[i] = charToData(*pTemp++) * 16;
  52. pMac[i] += charToData(*pTemp++);
  53. pTemp++;
  54. }
  55. }

发表评论

表情:
评论列表 (有 0 条评论,439人围观)

还没有评论,来说两句吧...

相关阅读