如果一个整数是2的整次幂,那么当它转化为二进制时,只有最高位时1,其他都是0 把这个整数减1后,二进制数全变成了1,原本最高位变为0 因此,只需要 原数值 和 它减1的结果 进行按位与运算,也就是 n&(n-1) 是否为0,就可以判断它是不是2的整次幂 123public void boolean isPowerOf2(int num){ return (num & num-1) == 0;}