问题描述:
Given an integer, write a function to determine if it is a power of two.
判断一个数是否为2的次方
举例看2的次方数及其二进制表示如下,
1(0)、2(10)、4(100)、8(1000)、16(10000)······
满足2的次幂的数的二进制表示只有一个1,且一定是最高位为1.
到这里思路就清晰了。
AC代码如下:
bool isPowerOfTwo(int n)
{
if(n <= 0)
return false;
return (!(n&n-1));
}