如果一个数是2的n次方,则化成二进制数首位肯定是1其他位都是0,而 A-1 则首位是0,其余位全是1

那么用A&(A-1)结果为0则说明A是2^n