LeetCode-231. 2的幂

    xiaoxiao2022-07-05  198

    231. 2的幂

    【题目】:

    【代码】:

    方法1:int类型除掉符号位之后,最大的2的幂是2的30次方1073741824,如果n是2的幂,必然是1073741824的约数。

    效果:

     

    方法2:1000 & 0111 == 0 

    class Solution { public boolean isPowerOfTwo(int n) { return n>0 && (n & n-1)==0; } }

     

    效果:

     

    方法3:8的二进制1000,-8的二进制为8取反加1,即0111+0001=1000

    class Solution { public boolean isPowerOfTwo(int n) { return n>0 && (n&-n)==n; } }

    效果同方法2。

    最新回复(0)