当我刚开始工作时,大型机组装程序程序员向我展示了如何在不使用传统算法的情况下将它们交换为值:
a = 0xBABE
b = 0xFADE
temp = a
a = b
b = temp
他们用来交换两个值(从一点到一个大的缓冲区)的是:
a = 0xBABE
b = 0xFADE
a = a XOR b
b = b XOR a
a = a XOR b
现在
b == 0xBABE
a == 0xFADE
它交换了2个对象的内容,而无需第三个临时存储空间。
我的问题是:这个XOR交换算法是否仍在使用,它仍然在哪里适用。