You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过位运算判断一个整数是否为2的幂?

判断整数是否为2的幂(位运算实现)

核心原理

2的正整数幂的二进制表示只有一位是1(比如16=10000,8=1000)。当对这类数执行n-1操作时,原二进制中的1会变为0,后面所有低位变为1(比如16-1=15=01111)。此时将n与n-1做按位与运算,结果必然为0。

需要注意:0和负数不可能是2的幂,所以必须先判断n > 0。

代码实现

Java 版本

public static boolean isPowerOfTwo(int n) {
    return n > 0 && (n & (n - 1)) == 0;
}

Python 版本

def is_power_of_two(n):
    return n > 0 and (n & (n - 1)) == 0

验证示例

  • 输入n=16:16 & 15 = 0,且16>0,返回true
  • 输入n=12:12 & 11 = 8 ≠ 0,返回false
  • 输入n=1:1 & 0 = 0,且1>0,返回true(1是2^0,符合条件)
  • 输入n=0:直接因0>0不成立,返回false

内容的提问来源于stack exchange,提问作者Kushal_Hemanth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:40:33