Preon 框架收集分离的位(实际上是半字节)
Preon framework gathering separated bits (nibbles actually)
我尝试使用 Preon 解码的二进制流的值由 5 个不连续的半字节组成,例如:
十六进制数据:
00A00000F200EE0000
考虑到必须将值从非零标记的半字节中提取到 AF2EE 中,这可以使用 Preon 吗?如果是这样,您能否提供任何提示?
PS: 零只是为了示例,它们并不代表选择要提取哪些半字节的标准,因为它们是所需的固定位置半字节。
也许@wilfred-spinger 可以提供帮助?
如果半字节是固定位置,那么是的,这是可能的。 class 字段可能如下所示:
@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 位设置字段,但我想不起来了。
希望对您有所帮助。
我尝试使用 Preon 解码的二进制流的值由 5 个不连续的半字节组成,例如:
十六进制数据: 00A00000F200EE0000
考虑到必须将值从非零标记的半字节中提取到 AF2EE 中,这可以使用 Preon 吗?如果是这样,您能否提供任何提示?
PS: 零只是为了示例,它们并不代表选择要提取哪些半字节的标准,因为它们是所需的固定位置半字节。
也许@wilfred-spinger 可以提供帮助?
如果半字节是固定位置,那么是的,这是可能的。 class 字段可能如下所示:
@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 位设置字段,但我想不起来了。
希望对您有所帮助。