代码不难,需要捋捋思路
这里用到了异或符号
什么是异或(^)?
举例:
3的二进制数为: 0000 0000 0000 0000 0000 0000 0000 0011
5的二进制数为: 0000 0000 0000 0000 0000 0000 0000 0101
3异或5的值为 : 0000 0000 0000 0000 0000 0000 0000 0110
相同输出0,相异输出1;
程序中将a^b的值存放到a中,a此时为异或后的值;
用异或后的值(a)再异或b原来的值,即可得到b(交换后的值即为原来的a);
再用异或后的值(a)异或b(交换后的值即为原来的a),即可得到a(交换后的值即为原来的b);
还有一种加减法可以解决此问题,但会有溢出问题,有想了解可自行百度。