求助,怎么把内存中的16进制0x00显示出来?

weixin_43824995 2019-01-13 04:51:17
我想通过串口输出设备的MAC地址,
数组里面的值是0x00 0x12 0x4B 0x00 0x19 0xAB 0xF0 0x66
请问如何转成数字+字母形式的00124B0019ABF066
...全文
200 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
架构师李肯 2019-01-14
  • 打赏
  • 举报
回复
可以参考下博文 我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《常见数据格式转换处理的代码实现》, 一起来围观吧 https://blog.csdn.net/szullc/article/details/85009998 里面有很多现成的格式数据常用形式转换,你的这种需求,我们叫“BCD形式转ASCII形式”
独孤过 2019-01-13
  • 打赏
  • 举报
回复

#include <stdio.h>

char MACDZ[] = { (char)0x00, (char)0x12, (char)0x4B, (char)0x00, (char)0x19, (char)0xAB, (char)0xF0, (char)0x66 };

int main()
{
	unsigned length = sizeof(MACDZ);
	char buffer[BUFSIZ];
	for (unsigned i = 0; i < length; ++i)
		sprintf(buffer + (i << 1), "%02X", (unsigned char)MACDZ[i]);
	buffer[length << 1] = 0;
	printf("%s", buffer);
	return 0;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧