实现MAC地址转换成十六进制

原创 2016年08月30日 17:57:37

    实现将mac地址(如:"00:FF:0A:0C:06:03")转换成十六进制存储的00FF0A0C0603

由以下两种方法实现:

方法一:

#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;
}


方法二:

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;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

MAC地址 中 MAC地址字符串 到 MAC地址数值的 转换

转自:http://hi.baidu.com/xlt1888/item/b6bc48910c745fe0291647e7 MAC地址 中 MAC地址字符串 到 MAC地址数值的 转换 MAC地址为...

Android手机Root后的安全问题汇总

本帖转自:        http://su1216.iteye.com/        http://blog.csdn.net/su1216/ 前提:你有一部已经ro...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

跟我一起写 Makefile(四)

书写规则————规则包含两个部分,一个是依赖关系,一个是生成目标的方法。在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,...
  • haoel
  • haoel
  • 2004-02-24 16:50
  • 39856

跟我一起写 Makefile(三)

Makefile 总述———————一、Makefile里有什么?Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了,如何生成一个或多的的...
  • haoel
  • haoel
  • 2004-02-24 16:49
  • 74973

跟我一起写 Makefile(二)

三、make是如何工作的在默认的方式下,也就是我们只输入make命令。那么,    1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。    2、如果找到,它会找文件...
  • haoel
  • haoel
  • 2004-02-24 16:49
  • 58466

跟我一起写 Makefile(一)

跟我一起写 Makefile 陈皓概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和profess...
  • haoel
  • haoel
  • 2004-02-24 16:48
  • 296216

用GDB调试程序(七)

改变程序的执行———————    一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调...
  • haoel
  • haoel
  • 2003-07-12 16:42
  • 35205

用GDB调试程序(六)

七、设置显示选项    GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。    set print address     set print address on   ...
  • haoel
  • haoel
  • 2003-07-12 22:24
  • 34948

用GDB调试程序(五)

查看运行时数据———————        在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是:   ...
  • haoel
  • haoel
  • 2003-07-09 08:30
  • 51537

用GDB调试程序(四)

查看栈信息—————当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来...
  • haoel
  • haoel
  • 2003-07-09 08:30
  • 39670
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)