如何根据模式解压缩字节数组?例如。 “ uint:16,uint:12,uint:12”
在Python中,有一个bitstring模块带有 unpack 方法,但是我找不到任何等效的Java。
答案 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];