判斷一個數是否是2的冪


前言

概念:

如果一個數是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的。

所以可以這樣來運算。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM