您似乎误解了"平价"的含义,因为它通常用于计算机世界.如果二进制表示具有偶数个设置位,并且如果它具有奇数个设置位,则您显示的代码将设置parity为.平价的概念与偶数或奇数本身无关.一些例子:falsevtruev
Number (base 10) Number (base 2) Parity
0 0 0
1 1 1
2 10 1
3 11 0
4 100 1
5 101 0
6 110 0
7 111 1
. . .
. . .
. . .
12498741 1101 1110 1101 0111 0011 0101 0
. . .
. . .
. . .
Run Code Online (Sandbox Code Playgroud)
如果你真的想检查一个数字是偶数还是奇数,你可以使用:
bool odd = v & 1;
bool even = !(v & 1);
Run Code Online (Sandbox Code Playgroud)
这相当于%@ user1118321答案中使用的表达式.