用位运算判断奇偶性的核心是检查二进制最低位:为1是奇数,为0是偶数;Java中推荐写法为(n & 1) == 0判断偶数、(n & 1) != 0判断奇数,该方式比n % 2更高效且支持负数。

用位运算判断奇偶性,核心是看二进制最低位:奇数的最低位一定是 1,偶数一定是 0。Java 中最常用、最高效的方式是用按位与(&)操作和数字 1 进行比较。
为什么用 n & 1 就能判断?
因为整数在计算机中以补码形式存储,而任何整数与 1 做按位与,结果只取决于其二进制表示的**最后一位**:
-
偶数(如 4 →
100):100 & 001 = 000→ 结果为 0 -
奇数(如 5 →
101):101 & 001 = 001→ 结果为 1
代码怎么写?
直接用 (n & 1) == 1 判断奇数,(n & 1) == 0 判断偶数。更简洁写法是:
-
判断是否为奇数:
if ((n & 1) != 0)或if ((n & 1) == 1) -
判断是否为偶数:
if ((n & 1) == 0) - 注意:
n & 1对负数也成立(比如-3 & 1 == 1),因为补码下奇偶性定义不变
和 n % 2 == 0 比有什么优势?
位运算是 CPU 级原语,无需除法器参与,执行速度更快、指令更少;尤其在高频循环或底层算法(如哈希表扩容、位图处理)中,微小优化可带来可观收益。不过对普通业务逻辑,二者差异几乎不可测,可读性上 `%` 更直观——选哪个取决于场景需求。
立即学习“Java免费学习笔记(深入)”;


















