在二进制中,数字的奇偶性可以通过最低位(最右边的一位)来判断:
- 如果一个数是奇数,它的二进制最低位一定是
1(例如:3 是11,5 是101)。 - 如果一个数是偶数,它的二进制最低位一定是
0(例如:2 是10,4 是100)。
而 x & 1 是一个位运算,其作用是只保留 x 的二进制最低位,其他位全部清零:
- 当
x是奇数时,最低位是1,所以x & 1的结果为1(非零)。 - 当
x是偶数时,最低位是0,所以x & 1的结果为0。
因此,通过判断 x & 1 的结果是否为 1,就能确定 x 是奇数还是偶数:
if (x & 1) {// x 是奇数
} else {// x 是偶数
}
这种方式比用 x % 2 判断奇偶性更高效,因为位运算的执行速度通常快于取模运算。
