0

我遇到了一个我似乎无法解决的问题。我有一种文件“ASDF”,在它们的标题中我可以获得必要的信息来阅读它们。问题是“字段”之一只有 4 位长。

所以,假设它是这样的:

  • 从第 0 位到第 8 位是当前节点的索引(我已经读过这个)
  • 从 8 到 16 它是下一个节点的索引(也请阅读此内容)
  • 从位 16 到 20 内容的长度(字符串等)

所以我的问题是,如果我尝试用字节阅读器读取“长度”,我将丢失 4 位信息,或者会“丢失 4 位”。有没有办法只读取 4 位?

4

1 回答 1

1

您应该在读取其他字节时读取此字节,然后应用 0x0F 位掩码

例如

byte result = (byte)(byteRead & 0x0F);

这将保留结果中的低四位。

如果需要的位是高四位,那么您可以应用移位运算符

byte result = (byte)((byteRead & 0x0F) >> 5);
于 2012-04-23T12:36:08.733 回答