Java - BitSet为整数

时间:2016-02-06 19:32:53

标签: java bitset

所以以answer为最基础投票作为基础我尝试创建一个BitSet并设置其位以形成数字478(111011110),所以我做了以下内容:

BitSet set = new BitSet();
set.set(0, true);
set.set(1, true);
set.set(2, true);
set.set(3, false);
set.set(4, true);
set.set(5, true);
set.set(6, true);
set.set(7, true);
set.set(8, false);
System.out.println(bitSetToInt(set));

借助以下方法:

public static int bitSetToInt(BitSet bitSet) {
        int bitInteger = 0;

        for (int i = 0; i < 32; i++){
            if (bitSet.get(i)) {
                bitInteger |= (1 << i);
            }
        }
        return bitInteger;
    }

所以虽然我期待从这次电话会议中获得478回复,但我得到了247.有人能解释我发生了什么事吗?

1 个答案:

答案 0 :(得分:1)

位0是最小位(1 <0)。你已经开启了0,1,2,4,5,6和7位。所以你的号码是011110111,即247。