程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。
这里奇偶性判断采用&符号(比较时注意优先级)
0 1 0 1 1010
// 9----->1 0 0 1 1001
// 如果为正数,补码与原码相同,直接看最后一位(因为数字1的前面N位均为0,跟它做 与运算,前面肯定为0),奇数为1,偶数为0,与1相与,结果不变。
// 如果为负数,补码转原码:保持符号位不动,其它各位取反+1,即为负数的绝对值原码全部取反+1。还是看最后1位,先取反,再+1,结果还是和原来相同。进行与运算时还是原来的末位,所以用跟1做与运算还是保持原来的结果。
?>