"); //-->
编译环境:DEV-C++ 5.6.3
主要实现:字符串的MAC转换成6字节 数值型MAC地址,及从大端模式转换成小端模式
#include "stdio.h"
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
static uint8_t charToData(const char ch)
{
switch(ch)
{
case '0':return 0;
case '1':return 1;
case '2':return 2;
case '3':return 3;
case '4':return 4;
case '5':return 5;
case '6':return 6;
case '7':return 7;
case '8':return 8;
case '9':return 9;
case 'a':
case 'A':return 10;
case 'b':
case 'B':return 11;
case 'c':
case 'C':return 12;
case 'd':
case 'D':return 13;
case 'e':
case 'E':return 14;
case 'f':
case 'F':return 15;
}
}
void strToMac(const char * szMac,uint8_t *pMac)
{
const char *pTemp = szMac;
int i=0;
for(i=0;i<6;++i)
{
pMac[i]=charToData(*pTemp++)*16; //取值后指针加1
pMac[i] +=charToData(*pTemp++);
// pTemp++;
}
}
void big_to_little(uint8_t *srcArray,uint8_t *desArray,uint8_t length)
{
int i=0;
for(i=0;i<=length;i++)
{
desArray[length-i]=srcArray[i];
}
}
main()
{
char test[12]="F891722C335B";
uint8_t MAC[6];
uint8_t des_MAC[6];
strToMac(test,MAC);
printf("%x,%x,%x,%x,%x,%x\r\n",MAC[0],MAC[1],MAC[2],MAC[3],MAC[4],MAC[5]);
big_to_little(MAC,des_MAC,5);
printf("%x,%x,%x,%x,%x,%x\r\n",des_MAC[0],des_MAC[1],des_MAC[2],des_MAC[3],des_MAC[4],des_MAC[5]);
}
结果显示:
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。