本文介绍了在C ++中(n&(n-1))== 0和n&(n-1)== 0做什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
(n&(n-1))== 0
和 n&(n-1)== 0
做什么( n
是整数)在C ++中?
What do (n&(n-1))==0
and n&(n-1)==0
do (n
is an integer) in C++?
if ((n&(n-1))==0)
{
// do something
}
if (n&(n-1)==0)
{
// do something
}
推荐答案
(n&(n-1))== 0
:
n&(n-1)
取消设置 n
的低位以二进制形式: XXX10000
-> XXX00000
(n & (n - 1)) == 0
:
n & (n - 1)
unset the lower set bit of n
in binary: XXX10000
-> XXX00000
所以(n&(n-1))== 0
表示 0
和所有 2
的幂.
n&(n-1)== 0
等效于 n&((n-1)== 0)
(由于运算符的优先级),因此 n == 1
.
n & (n - 1) == 0
is equivalent to n & ((n - 1) == 0)
(due to precedence of operator) and so n == 1
.
这篇关于在C ++中(n&(n-1))== 0和n&(n-1)== 0做什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!