實現MAC地址轉換成十六進制


方法1

#include "stdio.h"
#include "string.h"
  
static unsigned char SwitchChar(char chStr)
{
    if (chStr >= '0' && chStr <= '9')
    {
        return (chStr - '0');
    }
    else if (chStr >= 'A' && chStr <= 'f')
    {
        return (chStr - 'A' + 10);
    }
    else if (chStr >= 'a' && chStr <= 'f')
    {
        return (chStr - 'a' + 10);
    }
    else
    {
        return 0;
    }
}
 
int main(void)
{
    char achSrc[] = "00:FF:0A:0C:06:03";
    unsigned char mac[6] = {0};
    char *pchStr = strtok(achSrc, ":");
    int  nIdx = 0;
    int  nTotal = 0;
 
    while (NULL != pchStr)
    {
        abyDst[nTotal++] = (SwitchChar(*pchStr) << 4) | SwitchChar(*(pchStr+1));
        pchStr = strtok(NULL, ":");
    }
 
    printf("Mac is %s,mac is %02x%02x%02x%02x%02x%02x\n",achSrc,mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);
 
    return 0;
}

方法2

int main(void)
{
    char achSrc[] = "00:FF:0A:0C:06:03";
    unsigned char mac[6] = {0};
 
    sscanf(achSrc, "%02x:%02x:%02x:%02x:%02x:%02x", &mac[0], &mac[1], &mac[2], &mac[3], &mac[4], &mac[5]); 
    printf("Mac is %s,mac is %02x%02x%02x%02x%02x%02x\n",achSrc,mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);
 
    return 0;
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM