使用Java中的BitSet跟踪前导零

因此,根据
this question,有两种方法可以查看BitSet的大小.

> size(),这是遗留的,并没有真正有用.我同意这一点.做完后大小为64:

BitSet b = new BitSet(8);

> length(),返回最高设置位的索引.在上面的示例中,length()将返回0.这有点有用,但是如果您有前导零,则不能准确反映BitSet应该表示的位数.

我正在处理的信息很少(如果有的话)均匀地落入8位字节,而前导0对我来说和1s一样重要.我有一些333位长的数据字段,有些是20位,等等.

有没有更好的方法来处理Java中的位级细节,以跟踪前导零?否则,我将不得不’滚动自己’,可以这么说.我已经有了一些想法,但如果可能的话,我宁愿不重新发明轮子.

最佳答案 我有同样的问题,我没有找到内置的解决方案,但做一些改变并不是那么昂贵.

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;
    }
}
点赞