从模式解压缩字节

时间:2020-05-31 15:48:38

标签: java kotlin

如何根据模式解压缩字节数组?例如。 “ uint:16,uint:12,uint:12”

在Python中,有一个bitstring模块带有 unpack 方法,但是我找不到任何等效的Java。

1 个答案:

答案 0 :(得分:2)

不确定您使用的是哪个Java版本...

这是BitSet类的Java参考的链接:BitSet.html

您可以将valueOf()函数与字节数组一起使用以获取BitSet。然后使用BitSet.get()函数提取特定范围内的位

所以假设您有一个字节数组...

byte[] bytes;

BitSet bigSet = BitSet(bytes);

BitSet uint16set = bigSet.get(0,16);
BitSet uint12set1 = bigSet.get(16, 16+12);
BitSet uint12.set2 = bigSet.get(28, 28+12);

long uint16Long = uint16set.toLongArray()[0];
long uint12Long1 = uint12set1.toLongArray()[0];
long uint12Long2 = uint12set2.toLongArray()[0];