我遇到了一个我似乎无法解决的问题。我有一种文件类型"ASDF",在它们的标题中,我可以获取阅读它们的必要信息。问题是其中一个"字段"只有 4 位长。
所以,让我们这样说:
- 从位 0 到 8 它是当前节点的索引(我已经读过了)
- 从 8 到 16 它是下一个节点的索引(也请阅读此内容)
- 从位 16 到 20 内容的长度(字符串等)
所以我的问题是,如果我尝试使用字节阅读器读取"长度",我将丢失 4 位信息,或者"关闭 4 位"。有没有办法只读取 4 位?
您应该在读取其他字节时读取此字节,然后应用位掩码 0x0F
例如
byte result = (byte)(byteRead & 0x0F);
这将保留结果中较低的四位。
如果需要的位是高四位,那么您可以应用 shift 运算符
byte result = (byte)((byteRead & 0x0F) >> 5);