![]() |
1
6
呵呵,没有OR/XOR/XOR交换,应该是“三重XOR”交换。
我不明白你为什么要用它(除了新奇的价值) |
![]() |
2
3
它不起作用的原因是你用了一个不好的例子。不能使用或然后使用xor再使用xor交换两个值。它只在您的示例中起作用,因为5和10没有共同点,所以第一个或不破坏任何信息:
但是,如果它们有任何共同点,就不起作用了——让我们试试13和10:
注意,我们现在仍然有值5和10,即使我们从13和10开始。你要找的是三次XOR交换:
|
![]() |
3
2
它具有破坏性(因为按位或)。为什么不在循环中使用一个临时变量而不是独占的ORS:
作为对第二部分的回答,您在binary中所做的是:
当你或两个值在一起时,你会破坏原来的数字。它与5&10一起工作,因为两个数字之间没有共同的位。当您对以下内容执行此操作时:
您不能再恢复6和10,因为或是一个不可逆的操作。独家或可逆。 |
![]() |
4
1
很抱歉,如果这不是你问题的重点,那就说:
我错过什么了吗? |
![]() |
5
1
其他人已经指出了使用XOR操作的正确解决方案…这不是一个确切的答案,但我想我会告诉你
下面是一个如何将它与您发布的代码一起使用的示例。
希望有帮助,即使这不是你问题的具体答案… |
![]() |
6
0
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 5 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 5 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |