首页 > 解决方案 > 如何在 C 程序中从十六进制字符串中提取值?

问题描述

我有一个十六进制字符串,例如:

char str[] = "40004A0060007A0034006600";

我想从中提取单个值,例如 0x40、0x00、0x4A、0x00 等。

怎么做?

标签: c

解决方案


  • 将感兴趣的 2 个字节复制到一个临时的 3 字节数组中。
  • Null 终止 3 字节数组以将其转换为字符串。
  • strtoul从 stdlib.h调用这个数组。

或者,您可以手动对其进行解码,因为这是一件微不足道的事情。屏蔽半字节,减去一些 ASCII 值或进行查找表检查,然后将 ms 半字节乘以 16。


推荐阅读