在二进制中,数字的奇偶性可以通过最低位(最右边的一位)来判断:
- 如果一个数是奇数,它的二进制最低位一定是
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
判断奇偶性更高效,因为位运算的执行速度通常快于取模运算。