LeetCode #342. Power of Four 判斷是否為四的次方

LeetCode #342. Power of Four

題目:輸入一個整數,判斷是不是四的次方。

 

四的次方數的最高位的1都是計數位,

那麼我们只需AND一個數(0x55555555) <==> 1010101010101010101010101010101,

如果得到的數仍然為同一個,

則可以肯定其為四的次方數

    bool isPowerOfFour(int num) {
        return num > 0 && !(num & (num - 1)) && (num & 0x55555555) == num;
    }

節錄自 http://www.cnblogs.com/grandyang/p/5403783.html

...繼續閱讀 »