繁体   English   中英

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

[英]In Java, is it possible to clear a bit?

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

是的,使用

bits & ~(1 << n) 

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

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

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)

如果您必须使用整数,请使用bits |= (1 << N)设置值,并如 dfa 所述,使用以下方法清除: bits &= ~(1 << N)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM