LeetCode 342.Power of Four(n&(n-1)、0x55555555)
题目链接: 点击这里 1:1 2:10 4:100 8:1000 16:10000 可以在 2 2 2 的幂的基础上筛选出 4 4 4 的幂,即判断 1 1 1 是在奇数位还是偶数位。可以借助于按位与运算和0x55555555筛选出 1 1 1 的位置。 下述具有特殊二进制的整数,可以很方便进行位操作,而且该整数的十六进制形式比较好记,也不用写那么多的0、1: 0xaaaaaaaa = 10101010101010101010101010101010 (偶数位为1,奇数位为0) 0x55555555 = 1010101010101010101010101010101 (偶数位为0,奇数位为1) 0x33333333 = 110011001100110011001100110011 (1和0每隔两位交替出现) 0xcccccccc = 11001100110011001100110011001100 (0和1每隔两位交替出现) 0x0f0f0f0f = 00001111000011110000111100001111 (1和0每隔四位交替出现) 0xf0f0f0f0 = 11110000111100001111000011110000 (0和1每隔四位交替出现) class Solution { public : bool isPowerOfFour ( int num ) { if