Given an integer, write a function to determine if it is a power of two.
判断一个数是否是2的幂,判断方法主要依据2的N次幂的特点:仅有首位为1,其余各位都为0.
方法1: n & n-1 == 0
class Solution {
public:
bool isPowerOfTwo(int n) {
return (n>0) && (!(n&(n-1)));
}
};方法2: 判断n的二进制中1的个数
bool isPowerOfTwo(int n) {
int count = 0;
while (n > 0)
{
count+=(n&0x01);
n>>=1;
}
return count==1;
}
本文介绍两种方法来判断一个整数是否为2的幂。第一种方法利用位运算特性,通过n & (n-1) == 0 的方式快速判断;第二种方法通过计算n的二进制表示中1的个数是否为1来判断。
2736

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



