约 8 分钟
2 的幂的二进制只有一个 1,减 1 后低位全变 1,两者相与得 0。故 n>0 && (n&(n-1))==0 即判断 n 是否为 2 的幂。
n>0 && (n&(n-1))==0
8 和 12 哪个是 2 的幂?用该式验证 12。
登录 后可看答案