c - 如何在 C 程序中从十六进制字符串中提取值?
问题描述
我有一个十六进制字符串,例如:
char str[] = "40004A0060007A0034006600";
我想从中提取单个值,例如 0x40、0x00、0x4A、0x00 等。
怎么做?
解决方案
- 将感兴趣的 2 个字节复制到一个临时的 3 字节数组中。
- Null 终止 3 字节数组以将其转换为字符串。
strtoul
从 stdlib.h调用这个数组。
或者,您可以手动对其进行解码,因为这是一件微不足道的事情。屏蔽半字节,减去一些 ASCII 值或进行查找表检查,然后将 ms 半字节乘以 16。
推荐阅读
- javascript - AngularJs ng-repeat 有数千个项目
- excel - Excel VBA 在尝试保存工作簿时禁用打开它
- r - 移动带有条件的 [-] 符号
- javascript - 锚标记单击事件在 Safari 浏览器中不起作用
- c - 如何使用 C 中的递归将每个数字替换为右侧的近位数字?
- reactjs - 如何将 framer-motion 与 material-ui 一起使用?(reactjs)(@material-ui/core)(帧运动)
- compilation - iex:在 iex 控制台中运行编译好的 elixir 二进制文件
- ssl-certificate - Indy 10 SSL 根证书
- javascript - 如何修改 CSS 标签内容?不使用 JavaScript?
- db2 - DB2oC(云上的 DB2):面临“尝试修改数据但未定义为修改 SQL 数据”错误