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。