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; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/sunao2002002/article/details/46777615