读取 4 位而不会丢失信息

  • 本文关键字:信息 读取 c# stream bit
  • 更新时间 :
  • 英文 :


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

所以,让我们这样说:

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

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

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

例如

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新