使用按位运算符/位操作将小数分解为2的幂。所以如果我们有9 = 2 ^ 0 + 2 ^ 3

时间:2015-11-26 05:20:35

标签: java bit-manipulation bit

public static void main(String[] args) {
    System.out.println(bitsSet(14));
}

public static BitSet bitSet(long num) {
    BitSet bitSet = new BitSet();
    for (int i = 0; i < 64; i++) {
        if (((num >>> i) & 1) != 0) {
            bitSet.set(i);
        }
    }
    return bitSet;
}

我在上面尝试了这个代码,但我的bitSet.set会出错,我不确定我的方法是否正确

1 个答案:

答案 0 :(得分:1)

您的方法名称和通话名称不相同。

System.out.println(bitsSet(14));

而你的方法是你的方法。

public static BitSet bitSet(long num) 
{
...
}

另外,我建议你为变量和函数使用不同的名称。

public static BitSet bitSet(long num) 
{
BitSet myBitSet = new BitSet();
...
}