Given an integer (signed 32 bits), write a function to check whether it is a power of 4.
Example:
Given num = 16, return true. Given num = 5, return false.
判断是否为4的幂,已知整数最大位数为32。
如果是4的倍数,如1,4,16.。。。写成二进制为1,100,10000,按位与01010101010101010101010101010101可得到整数本身。
class Solution {
public:
bool isPowerOfFour(int num) {
return num > 0 && (num & (num - 1)) == 0 &&
((num & 0b01010101010101010101010101010101) == num);
}
};