题目: 如何判断一个数是否是2的n次方,要求时间复杂度为O(1); 思路:本题考察的是位运算,尤其是对二进制的理解;当一个数为2的n 次方时,整个二进制数,只有他本位是1 其他位为0,如果我们给这个数减一,那么本位变为0 其他位全部变成1;我们可以通过&运算, 如果为0即为2的n次方; 本题暂不讨论n为分数(既浮点数)的情况; 例: 我们通过8来进行距离 他是2的3次方 代码实现 public static boolean isPower(int n){ if