LeetCode Power of Two

Given an integer, write a function to determine if it is a power of two.

这是计算数中1的个数的简版,如果是2的幂的话,二进制中应该只有一个bit为1,即1的count=1。所以这里就不需要用循环了,一次判断即可。但是入参是有符号数,按照题意INT_MIN虽然也只有一个bit为1但是也不算是power of two.

class Solution {
public:
    bool isPowerOfTwo(int n) {
        if (n <= 0) {
            return false;
        }
        return !(n & (n-1));
    }
};
posted @ 2015-07-06 09:57  卖程序的小歪  阅读(189)  评论(0编辑  收藏  举报