c - 48字节二进制转6字节二进制

标签 c binary hex arrays byte

我从命令行 "13:22:45:33:99:cd" 读取了一个 17 字节的十六进制字符串,并想将其转换为长度为 6 字节的二进制值。

为此,我从命令行 "13:22:45:33:99:cd" 读取了一个 17 字节的十六进制字符串,并将其转换为二进制数字 0001 0011 0010 0010 0100 0101 0011 0011 1001 1001 1100 1101。但是,由于我使用的是 char 数组,它的长度为 48 个字节。我希望生成的二进制文件的长度为 6 个字节,即我希望 0001 0011 0010 0010 0100 0101 0011 0011 1001 1001 1100 1101 为 6 个字节(48 位)而不是 48 个字节。请建议如何完成此任务。

最佳答案

':' 字符处拆分字符串,现在每个子字符串都是一个字符串,您可以将其传递给例如strtoul然后放入大小为 6 的 unsigned char 数组。

关于c - 48字节二进制转6字节二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12855026/

相关文章:

c - 保存和加载智能卡证书

c++ - 模位集算法

c++ - 在C++中序列化二进制数据的正确方法

c# - 与 BitConverter.ToString 相反的方法?

c++ - C 和 C++ 编码标准

c - 使用SIGTERM在子进程上调用kill会终止父进程,但是使用SIGKILL调用它会使父进程保持事件状态

C编程动态初始化二维数组

debugging - 看似由非复对数产生的复数

c - 十六进制替换为 ELF 二进制文件中更长的字符串?

java - 将二进制数据转换为字符数据的最佳方法是什么?