因此,根据this question,有两种方法可以查看BitSet
的大小。
size()
,这是遗产,并不是真正有用。我同意这一点。在执行以下操作后,大小为64
:
BitSet b = new BitSet(8);
length()
,返回最高设置位的索引。在上面的示例中,length()
将返回0
。这有点用处,但不能准确反映BitSet
在前导零的情况下应该代表的位数。
我正在处理的信息很少(如果有的话)均匀地分配到8位字节,并且前导0
对我来说和1
一样重要。我有一些333位长的数据字段,有些是20位等等。
有没有更好的方法来处理Java中的位级细节,以跟踪前导零?否则,我将不得不'滚动自己',可以这么说。我已经有了一些想法,但如果可能的话,我宁愿不重新发明轮子。
答案 0 :(得分:2)
我遇到了同样的问题而我没有找到内置的解决方案,但是进行一些更改并不是那么昂贵。
public class MyBitSet extends BitSet {
int realSize;
public MyBitSet(int realsize) {
// TODO Auto-generated constructor stub
super(realsize);
this.realSize=realsize;
}
public int realSize()
{
return this.realSize;
}
}