参加运算的两个数据,按照二进制位进行“异或”运算
异或运算法则:两个数对应二进制位的数字,相同为1,不同为0,
如1^2的结果为 0011 = 3,再例如:1111 0000 ^ 0000 1111 = 1111 1111,
由此可以得到两个关于异或运算的规律结论:
1,任何数 异或0 等于数本身,如:(十进制数) 5201314 ^ 0 = 5201314
2,任何数 异或1 等于原数按位取反,如:(二进制数) 1111 0000 ^ 1 = 0000 1111
3,任何数 异或自己 等于 0,如:(十进制数) 5201314 ^ 5201314 = 0
即可以利用以上规律实现指定二进制位的取反,置0等功能。
现有一拓展题目:
在不创建临时变量的情况下,交换两个变量
题解如下:
输入 x = 1314 , y = 520
打印时 x = 520 , y = 1314
可发现在不创建变量的情况下利用异或实现了两个变量的交换