为什么这样也可以将两个变量的值进行交换,是什么原理啊

img


为什么这样也可以将两个变量的值进行交换,是什么原理啊,可以详细说说嘛

其实就是赋值转换了原来的a,b;
a = b - a 给a赋值为b a之间的差值
b = b - a 此处a为新的a, b=b-差值=b-(b-a)=原来的a
a = a + b 此处a为差值,b为原来的a, a=差值+a=b-a+a=原来的b
由此交换。

a = b - a
b = b - a
a = a + b

// 举个例子: a = 5 b = 3
a = 3 - 5
b = 3 - (3 - 5) = 5
a = (3 - 5) + 3 - ( 3 - 5) = 3

这里 就实现了 a 和 b 交换

以前我只晓得位运算的异或可以交换两个整数,原来还有加减也可以😋

img

#!/sur/bin/nve python
# coding: utf-8

a, b = 56, 89
print(f"\na = {a}, b = {b}")

a = b - a
b = b - a
a = b + a

print(f"\n加减操作后:\na = {a}, b = {b}")


a = b ^ a
b = b ^ a
a = b ^ a

print(f"\n异或操作后:\na = {a}, b = {b}")


  本来不懂其理,看过楼上答主解析,明白过来。谢谢楼主分享🤝🤝🤝

涨姿势了🤗🤗🤗


【相关推荐】




如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^