n&(n-1) 的用途

n&(n-1)用到了按位与运算符,这一算法的用途是判断此数字二进制是否只含有唯一一个1。当满足该条件时,此式值为0

按位与正如字面意思,按二进制的每位进行与运算。

例如,n = 1000(Bin)的情况下,

  1000 // n
& 0111 // n - 1
------
  0000 // n & ( n - 1 )

此时n&(n-1)=0

n = 1100(Bin)

  1100 // n
& 1011 // n - 1
------
  1000 // n & ( n - 1 )

此时n&(n-1)≠0

添加新评论