Given an integer, write a function to determine if it is a power of two.
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
public class Solution {
public boolean isPowerOfTwo(int n) {
return (n > 0 && Integer.bitCount(n) == 1);
}
}
不想用现成的API,可以考虑下面的思路,(n & n-1)== 0,同样可以判断二进制里是不是只有1个1:
public class Solution {
public boolean isPowerOfTwo(int n) {
return ((n & (n - 1)) == 0 && n > 0);
}
}