我目前正在开发一个需要解析一些定制数据结构的 C 程序,幸运的是我知道它们的结构,但是我不确定如何在 C 中实现我的解析器。
每个结构的长度都是 32 位,每个结构都可以通过它的二进制签名来识别。
例如,有两个我感兴趣的特定结构,它们具有以下二进制模式(x 表示 0 或 1)
0000-00xx-xxxx-xxx0
0000-10xx-10xx-xxx0
在这些结构中,“x”位包含我需要的实际数据,因此基本上我需要一种基于位在每个结构中的写入方式来识别每个结构的方法。
以伪代码为例:
if (binaryPattern = 000010xxxxxxxxx0) {
do something with it;
}
我猜想将它们读取为整数,然后执行某种位掩码将是可行的方法,但我对 C 的了解不是很好,也许一个简单的逻辑 OR 操作就可以做到,但我只是想要一些在我开始之前这样做的建议。
谢谢
非常感谢所有回答的人,非常有帮助!!