返回题库

判断整数是否为 2 的幂

Power of 2

专题
Algorithmic Programming / 算法编程
难度
L4

题目详情

如何判断一个整数 xx 是否为 2 的幂?

Is integer x a power of 2?

解析

判断 xx 是否为 2 的幂的常用位运算写法:

  • 要求 x>0x>0(排除 0 与负数)。
  • xx 的二进制表示中只有 1 个 bit 为 1。

等价条件:

(x>0)  (x & (x1)=0).(x>0)\ \wedge\ (x\ \&\ (x-1)=0).

因为若 xx2k2^k,则二进制为 1000...0,减 1 后为 0111...1,与运算为 0;反过来若与运算为 0,则只能有一个 1。


Original Explanation

No official solution provided.