惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
J
Java Code Geeks
G
Google Developers Blog
A
About on SuperTechFans
博客园 - Franky
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
D
DataBreaches.Net
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
腾讯CDC
博客园 - 司徒正美
GbyAI
GbyAI
Martin Fowler
Martin Fowler
Blog — PlanetScale
Blog — PlanetScale
C
Check Point Blog
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件

博客园 - bitwoods

Linux驱动开发:内核模块堆叠(1) Linux驱动开发:内核模块与普通应用的区别 Linux驱动开发:从一个最简单的模块开始 c++ prepareStatement使用like查询语句的方式 glog编译报错解决 阿里云Ubuntu服务器优化 linux c++程序使用MD5 串口AT与数据的混杂接收处理 蓝牙Mesh简介(一)设备标识:UUID和Mesh地址 MT7621 openWrt插件操作GPIO(mmap) adblock plus 您的地区不可用 OpenWRT 修改固件默认显示中文 OpenWRT:插件自启动 OpenWRT编译时修改时区与主机名 SC200L Android10启动和关机修改 ILI9881D驱动 ubuntu20.04 微信和迅雷安装包 开启power management功能有坑,ESP32串口频繁出现UART_BREAK中断 ESP32音频开发板ESP32-Korvo V1.1踩坑
MAC地址与字符串的相互转化
bitwoods · 2021-06-23 · via 博客园 - bitwoods

MAC地址转字符串,直接使用宏

#define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
#define MACSTR "%02X:%02X:%02X:%02X:%02X:%02X"//转换后的格式,可按需求修改

//使用
char mac[6];//mac
char mac_str[15] = {0};	
sprintf(mac_str, MYMACSTR, MAC2STR(mac));

字符串获取mac地址:

static int hex2num(char c)
{
	if (c >= '0' && c <= '9')
		return c - '0';
	if (c >= 'a' && c <= 'f')
		return c - 'a' + 10;
	if (c >= 'A' && c <= 'F')
		return c - 'A' + 10;
	return -1;
}

void hexstr2mac(char *dst, char *src) {
	int i=0;
    while(i<6) {
        if(' ' == *src||':'== *src||'"'== *src||'\''== *src) {
            src++;
            continue;
        }
        *(dst+i) = ((hex2num(*src)<<4)|hex2num(*(src+1)));
	i++;
        src += 2;        
    }
}

//使用
char mac[6]={0};
char* macstr="AA:BB:CC:DD:EE:FF";
hexstr2mac(&mac,macstr);