给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
示例
输入: 1
输出: true
解释: 20 = 1
输入: 218
输出: false
2的幂次方的数字,转换为二进制都是 1 + N个0(例 1 0000 0000)这种形式
将二进制 1000 减 1 后得 0111
1000 & 0111 = 0
&:按位与 运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。
只有对应的两个二进位都为1时,结果位才为1。
代码实现
var isPowerOfTwo = function (n) {
if (n <= 0) return false;
return (n & (n-1)) == 0;
};