c# - 解释一下这个函数中 XOR 的使用?

标签 c#

我看到这个代码片段用于解决 ol'“在数组中找到一个没有重复的数字。”问题。我今天早上一直在看这个,但无法确定它是如何做到的。

我不明白 k 为什么总是最终持有非重复值。谁能解释一下这是如何工作的?

  static void Main(string[] args)
  {
     int[] list = { 3,6,9,12,3,6,9 };
     int k = 0;


     for (int i = 0; i < list.Length; i++)
     {
        k = k ^ list[i];
     }

     Console.WriteLine(k);
  }

最佳答案

它仅在只有一个数字不重复(或出现任何奇数次)并且所有其他数字出现偶数次时才有效。

当您将一个数字与另一个数字异或两次(或任何其他偶数次)时,它会自行抵消并留下原始数字。

关于c# - 解释一下这个函数中 XOR 的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7447611/

相关文章:

c# - 静态类中的匿名方法是非静态的?如何调用它?

c# - MVC 获取人名并将其放入文本框

c# - 安装 .NET SDK 5.0 后,我还应该安装 .NET Core 吗?

c# - 使用自定义解析器跳过空值

c# - MySQL(或 C#)不匹配 double 或小数

c# - 在运行时将 DataTable 绑定(bind)到 WPF MVVM 中的 Datagrid

c# - 从 IronPython 调用 C# 对象方法

c# - System.Threading.Timer 只触发一次

c# - VS 2015 RC - 尝试在 Windows 8 中创建 Windows 10 通用应用程序时不会加载 Xaml 设计器

c# - 如何显示计划任务的属性?