判断二进制数的奇偶性可以通过以下两种常用方法实现:
一、位运算判断
与运算(&)
通过将二进制数与 `1` 进行与运算,根据结果判断奇偶性:
- 若 `n & 1 == 1`,则该数为奇数;
- 若 `n & 1 == 0`,则该数为偶数。 例如:
- 5 的二进制为 `101`,`101 & 1 = 1`,所以 5 是奇数;
- 8 的二进制为 `1000`,`1000 & 1 = 0`,所以 8 是偶数。
异或运算(^)
通过统计二进制数中 `1` 的个数的奇偶性判断:
- 若 `n ^ 1` 的结果为 `0`,则 `1` 的个数为偶数(偶数);
- 若 `n ^ 1` 的结果为 `1`,则 `1` 的个数为奇数(奇数)。 例如:
- 3 的二进制为 `11`,`11 ^ 1 = 0`,所以有 2 个 `1`(偶数);
- 7 的二进制为 `111`,`111 ^ 1 = 0`,所以有 3 个 `1`(奇数)。
二、二进制表示规律
偶数的二进制表示末尾为 `0`,奇数的末尾为 `1`。例如:
2(十进制)= `10`(二进制)
7(十进制)= `111`(二进制)
100(十进制)= `1100100`(二进制)
利用这一规律,只需检查二进制数的最后一位即可判断奇偶性:
若最后一位为 `0`,则为偶数;
若最后一位为 `1`,则为奇数。
总结
推荐使用与运算,因为它简单且效率较高,适用于大多数编程场景;
异或运算更适合需要统计 `1` 的个数的场景,但实现稍复杂;
两种方法的核心原理都是基于二进制数的最低位特性。