一、四的N次幂的形式
4的N次幂应该是:
二进制 十进制
1 1 //0次幂
100 4 //1次幂
10000 16 //2次幂
1000000 64 //3次幂
100000000 256 //4次幂
...
二、特点
该数的任何二进制只有一个1
所以x&(x-1)都等于0.
4的N次幂的十进制除1外末尾数为4,6.
三、代码:
int fn(unsigned int x)
{
if ( x == 0 )
return false; //这句是排除为0的数
if ( x & (x - 1) )
return false;
return x & 0x55555555; //如果前面两句能通过,就已经证明了x是4的整数倍数。这句返回的就是那个数
}
或
!( x & (x - 1) ) && ( x % 10 == 4 || x % 10 == 6 )