Given an integer, write a function to determine if it is a power of two.
题目大意:
判断是否是2的幂次方。
题目思路:
2的幂次方=num+num;
100=10+10;
100&011=000;
101&100=100不等于0
发现2的幂次方数的特性 n&(n-1)==0.
2的幂次方n写成二进制形式 1000.....
n-1 二进制形式 0111.....
AC代码:
public boolean isPowerOfTwo(int n) {
return (n>0)&&(!(n&(n-1)));
}