按位与:
bool a = !(x&1);
先换成二进制:
1 | 5 | 6 |
0001 | 0101 | 0110 |
然后各个位置的数分别进行与运算(最后一行为结果):
0001 | 0001 |
0101 | 0110 |
0001 | 0000 |
由此可知,1与5按位与得1,1与6按位与得0,由于奇数最后一位为1,偶数最后一位为0可知
同样符合:取反可判断奇偶数。
bool a = !(x&1);
先换成二进制:
1 | 5 | 6 |
0001 | 0101 | 0110 |
然后各个位置的数分别进行与运算(最后一行为结果):
0001 | 0001 |
0101 | 0110 |
0001 | 0000 |
由此可知,1与5按位与得1,1与6按位与得0,由于奇数最后一位为1,偶数最后一位为0可知
同样符合:取反可判断奇偶数。