前言

概念:

如果一个数是2的幂,那么它的二进制是这样的:
2 10
4 100
8 1000
16 10000

也就是第一个是1,其他都是0。
然后-1的话:
1 01
4 11
8 111
16 1111

正文

(num&(num-1))==0

就是了。

解释,为什么不是2的幂就不会等于0呢?

比如说3

3 111
2 010

那么是不会等于0的,因为其他位会补位,也就是一定有一个同为1的。

所以可以这样来运算。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-02-02
  • 2022-12-23
  • 2021-09-05
  • 2022-12-23
  • 2021-12-09
  • 2022-12-23
猜你喜欢
  • 2021-09-13
  • 2021-12-18
  • 2021-11-18
  • 2022-01-08
  • 2021-06-18
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案