题目
Given an integer, write a function to determine if it is a power of two.
判断一个整数(int型)是不是2的(0~30)次方。
解题思路
如果给定的数n不大于0,则这是数肯定不满足条件。如果n大于0且n满足条件,那么,n的二进制中含有1的数目肯定为1,否则n不满足条件。于是,有了下面的代码:
public boolean isPowerOfTwo(int n) {
return (n <= 0) ? false : ((n & (n -1)) == 0);
}