位运算判断奇偶性最高效方式是n & 1:因二进制末位为1是奇数、0是偶数,该运算仅保留末位,对正负数及零均适用,且比取模更简洁可靠。

用位运算判断奇偶性,核心是看二进制表示的最低位(即第 0 位):如果为 1,是奇数;为 0,是偶数。Java 中最常用、最高效的方式是使用按位与运算符 & 和数字 1。
为什么用 n & 1 就行?
因为任意整数 n 的二进制最低位决定了它的奇偶性:
- 偶数的二进制末位一定是 0(如 2 → 10,4 → 100,6 → 110)
- 奇数的二进制末位一定是 1(如 1 → 1,3 → 11,5 → 101)
- n & 1 相当于只保留 n 的最低位,其余位全清零。结果只能是 0 或 1
实际写法示例
直接用在条件判断中即可,简洁且无需取模:
int n = 7;
if ((n & 1) == 1) {
System.out.println("奇数");
} else {
System.out.println("偶数");
}
更简写(利用非零即 true):
立即学习“Java免费学习笔记(深入)”;
if (n & 1) { // 注意:这里不加 == 1,因为 1 是 true,0 是 false
System.out.println("奇数");
} else {
System.out.println("偶数");
}
注意事项
这个方法对正数、负数、零都适用,因为 Java 中整数用补码表示,而负数的补码最低位仍准确反映奇偶性:
- -3 的补码末位是 1 → -3 & 1 == 1 → 奇数 ✔
- -4 的补码末位是 0 → -4 & 1 == 0 → 偶数 ✔
- 0 & 1 == 0 → 偶数 ✔
不推荐的误区
不要用 n & 0x1 或 n % 2 != 0 来替代:
- n & 0x1 功能等价,但 0x1 就是 1,多此一举
- n % 2 在负数时可能返回负余数(如 -3 % 2 == -1),需额外处理,不如位运算干净可靠


















