判断一个整数N是否是2的整次方。观察得知,若N是2的整次方,那么N的二进制表示法中一定只有一个1,且在最高位;N&(N-1)运算是将N的最右边一个1置零,该计算后若N为0,那么N即为2的整次方。
class Solution {
public:
bool isPowerOfTwo(int n) {
if(n<=0)
return false;
int flag=n&(n-1);
if(flag)
return false;
else
return true;
}
};
本文介绍了一种简单有效的方法来判断一个整数是否为2的幂。通过观察发现,如果一个整数N是2的幂,则其二进制表示中仅有一个1,并位于最高位。利用位运算N&(N-1)可以将N的最低位1变为0,如果此运算后N变为0,则说明N是2的幂。

被折叠的 条评论
为什么被折叠?



