如果一个数是2的n次方,则化成二进制数肯定是 1000...000 的形式,那么 假设这个数是x,则 x-1 肯定是 0111...111 的形式,位数比x少一位

那么 x & (x-1) 则有

1000...000

       &

0111...111 

0000...000

所以当  x & (x-1) = 0时,说明x是2的n次方

 

 

posted on 2012-08-15 23:03  ZimZz  阅读(1730)  评论(0编辑  收藏  举报