首先,要判断是否为正整数,如果不是,那么就不可能是2的幂。
接下来可以不使用循环或递归,而使用位运算。
位运算的话,如果这个数是2的幂,那么二进制肯定是100000的形式。
如果它自身减去1,就会变成11111的形式。
这个时候我们按位与,结果就会变成0。
首先,要判断是否为正整数,如果不是,那么就不可能是2的幂。
接下来可以不使用循环或递归,而使用位运算。
位运算的话,如果这个数是2的幂,那么二进制肯定是100000的形式。
如果它自身减去1,就会变成11111的形式。
这个时候我们按位与,结果就会变成0。