这道题目是2的幂的一个进阶版。
首先我们知道所有4的幂一定是2的幂,所以2的幂需要满足的条件,4的幂也必须要满足。
也就是说整个数中只存在一个位有1。
接下来我们还需要去寻找一个更严苛的条件。
比如1,那么二进制是1
4的二进制是100
16的二进制是10000
64的二进制是1000000
不难发现1后面的0都是偶数个,我们也可以认为1出现的位置都是从右往左的第奇数位。
我们可以制作一个二进制数0b10101010101010101010101010101010去和n按位与,
若为0则代表这个1所在的位的确在奇数位,不然则在偶数位。