使用Java中的BitSet跟踪前导零

时间:2014-06-06 16:53:26

标签: java bitset

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

  1. size(),这是遗产,并不是真正有用。我同意这一点。在执行以下操作后,大小为64

      

    BitSet b = new BitSet(8);

  2. length(),返回最高设置位的索引。在上面的示例中,length()将返回0。这有点用处,但不能准确反映BitSet在前导零的情况下应该代表的位数。

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

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

1 个答案:

答案 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;
    }
}