lyggqm

如果一个数是2^n,说明这个二进制里面只有一个1。除了1.

 

a  = (10000)b

a-1 = (01111)b

a&(a-1) = 0。

如果一个数不是2^n,

说明它的二进制里含有多一个1。

a = (1xxx100)b

a-1=(1xxx011)b

那么 a&(a-1)就是 (1xxx000)b,

而不会为0。

所以可以用这种方法判断一个数是不2^n。

 

分类:

技术点:

相关文章:

  • 2022-02-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-02
  • 2021-10-18
  • 2021-09-08
  • 2021-12-30
猜你喜欢
  • 2021-11-22
  • 2021-07-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案