【LeetCode】231. Power of Two

Power of Two

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

Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.

 

2的次幂的特征就是,二进制表示中只有一位是1.

乘以2相当于左移一位,因此2^k的二进制相当于把1(2^0)向左移动k次

class Solution {
public:
    bool isPowerOfTwo(int n) {
        if(n <= 0)
            return false;
        return (n & (n-1)) == 0;
    }
};

posted @ 2015-07-08 09:49  陆草纯  阅读(270)  评论(0编辑  收藏  举报