LeetCode 231: Power of Two

2015-11-21 00:58:01 · 作者: · 浏览: 5

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;
	}


?

?