在Java中,是否可以清除一点?

2022-09-03 03:39:03

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


答案 1

是的,使用

bits & ~(1 << n) 

其中是整数/长整型,n 是要清除的第 n 个位。

(这是一篇有用的博客文章:您绝对必须知道的低级位黑客)


答案 2

dfa答案的替代方法是使用BitSet数据结构。它支持 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)

如果必须使用整数,则使用和 dfa 所述设置值,请使用 清除:。bits |= (1 << N)bits &= ~(1 << N)


推荐