给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
示例 1:
输入: 1 输出: true 解释: 20 = 1
示例 2:
输入: 16 输出: true 解释: 24 = 16
示例 3:
输入: 218 输出: false
思路:
判断一个整数是不是2的幂,可根据二进制来分析。2的幂如2,4,8,等有一个特点:
二进制数首位为1,其他位为0,如2为10,4为100
2&(2-1)=0 4&(4-1)=0
即得出结论如果一个数n为2的幂,则n(n-1)=0
class Solution {
public static boolean isPowerOfTwo(int n) {
return n>0&& (n&(n-1))==0;
}
}