在Java中,有可能清除一下吗?

时间:2009-07-02 09:11:05

标签: java bit-manipulation

在Java中,是否可以使用按位运算清除一点?

2 个答案:

答案 0 :(得分:40)

是的,使用

bits & ~(1 << n) 

其中是int / long而 n 是要清除的第n位。

(这是一篇有用的博文:low level bit hacks you absolutely must know

答案 1 :(得分:0)

dfa答案的替代方法是使用BitSet datastructure。它支持AND,OR和XOR等运算。

var bitset = new BitSet(K);    // Initialize a bitset with K digits.
var nthBit = bitset.get(n);    // Get Nth bit (true/false).

bitset.clear(n);               // Clears N'th bit to false.
bitset.set(n);                 // Sets N'th bit to true.
bitset.flip(n);                // Toggles N'th bit.

在您的情况下,您将寻找bitset.clear(n)

如果必须使用整数,请使用bits |= (1 << N)和 提及了dfa,请清除使用:bits &= ~(1 << N)