【发布时间】:2011-06-12 14:06:48
【问题描述】:
我正在尝试从二进制文件中取出四个字节并将它们转换为位掩码,该位掩码表示数据为零,元数据表示 1。
我假设我需要通过将它们组合在一起将它们转换为 int,然后通过它进行位移以确定是否设置了位位置。
我不知道如何将所有四个组合在一起以获得我可以单步执行的 32 位掩码。
int mask = (((int)hbyte) & 0xff) << 8 | (((int)lbyte) & 0xff);
这会将两个组合在一起(Laurence Gonsalves 在另一篇文章中发布)但我无法弄清楚将四个组合在一起的语法。
或者这是否是 Enumset 的情况,我承认我并不完全理解。
任何建议将不胜感激。
谢谢。
托尼
**只是为此添加另一个快速说明,(我不确定这是否通常允许,所以如果不是,我提前道歉),通过我新创建的 int 并检查是否存在的最佳方法是什么位是否设置?
目前我正在使用if (((comboOfBytes >> bitmaskBit) & 1) == 0),但我不知道这是否是我需要的最优雅的检查方式。
此外,我仍然不完全确定我是否理解移位实际上是如何允许检查所有 32 位的!
再次感谢
【问题讨论】: