You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何以下XOR异或运算代码返回错误结果?

代码执行结果与预期不符的原因解释

异或运算的核心特性

  • 任何数与自身异或结果为0:a ^ a = 0
  • 0与任何数异或结果等于该数本身:0 ^ a = a
  • 异或运算满足交换律和结合律,运算顺序不影响最终结果

数组元素与运算过程分析

代码中的数组input = {2,3,4,5,4,3,7,2}里,各数字的出现次数:

  • 2、3、4:均出现2次(偶数次)
  • 5、7:均出现1次(奇数次)

根据异或特性,出现偶数次的数字会两两异或抵消为0,最终剩余的是出现奇数次的数字的异或结果:5 ^ 7。
将5(二进制101)与7(二进制111)异或,得到二进制010,对应十进制的2,这就是代码返回2的原因。

预期结果错误的原因

你预期结果为5,是误解了异或的适用场景:异或仅能在数组中仅有一个数字出现奇数次,其余均为偶数次的情况下,直接得到那个唯一的数。但此数组中有两个数(5和7)都只出现一次,因此最终结果是这两个数的异或值,而非其中某一个。

内容的提问来源于stack exchange,提问作者Nick Kamal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 20:22:35