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