如何使用BitSet来表示以0结尾的位表示?
例如,代表" 10100"在BitSet中,我正在做以下事情。
BitSet bits = new BitSet(5);
bits.set(0);
bits.set(2);
基于Java Doc,
length() - 返回"逻辑大小"此BitSet:BitSet中最高设置位的索引加一。
size() - 返回此BitSet实际使用的空间位数,以表示位值。
因此,对于给定的示例,length()返回" 3"和size()返回" 64"因为BitSet内部使用long。
使用给定的BitSet,如何确定其中的实际位(本例中为10100)?
P.S:我正在研究压缩技术,我不想使用boolean []来表示它,因为数组中的每个条目都需要1个字节。
谢谢!
答案 0 :(得分:4)
在BitSet
中,零索引是最小有意义位。你的例子应该是:
BitSet bits = new BitSet(5);
bits.set(2);
bits.set(4);
现在bits.length()
按预期返回5
。