我尝试使用Preon解码的二进制流的值由5个非连续的半字节组成,例如:

十六进制数据:
00A00000F200EE0000

考虑到必须将非零标记的半字节中的值提取到AF2EE中,可以使用Preon吗?如果是这样,请您提供任何提示吗?

PS:零仅是示例,它们不代表选择要提取的半字节的标准,因为它们是固定位置的零位。

也许@ wilfred-spinger可以提供帮助?

最佳答案

如果半字节是固定位置,则可以。类字段可能看起来像这样:

 @BoundList(size = "8")
 private byte[] reserved0;

 @BoundList(size = "4")
 private byte[] nibble1; // location of A

 @BoundList(size = "20")
 private byte[] reserved1;

 @BoundList(size = "4")
 private byte[] nibble2; // location of F

 @BoundList(size = "4")
 private byte[] nibble3; // location of 2

 // etc


我认为可能有一种在Preon中指定偏移量的方法,因此您不必具有0位的字段,但是我不记得了。

希望能有所帮助。

07-26 07:49