不使用任何的变量实现a,b值的交换
如下:
版本1:
a = a + b; //若a,b为比较大的数,a=a+b易超界.
b = a - b;
a = a - b;
版本2:解决了超界问题。
a=a^b; //按位异或运算^参与运算的两数各对应的二进制位相异或,当对应的二进制位相异时,结果为1.
b=a^b;
a=a^b;
不使用任何的变量实现a,b值的交换
如下:
版本1:
a = a + b; //若a,b为比较大的数,a=a+b易超界.
b = a - b;
a = a - b;
版本2:解决了超界问题。
a=a^b; //按位异或运算^参与运算的两数各对应的二进制位相异或,当对应的二进制位相异时,结果为1.
b=a^b;
a=a^b;