首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么{2,3,4,5}的XOR是0?

为什么{2,3,4,5}的XOR是0?
EN

Stack Overflow用户
提问于 2022-12-02 07:46:57
回答 1查看 31关注 0票数 0

异或有三个属性-

  1. N ^ N = 0
  2. N ^ 0 = N
  3. A ^ B = B ^ A

让数组是{2,3,4,5},我正在执行2 ^ 3 ^ 4 ^ 5的异或,但答案是0。为什么是0?

PS:我认为,当存在每个数字的副本(N)时,结果总是为零,这将使异或计算成为0。有一篇文章可以使用XOR逻辑删除数组中的重复元素,因为XOR的顺序无关紧要,两个相同的数字将导致0。

编辑:根据注释中的答案,我了解到,有时候XOR操作也可以生成结果0,而不一定是复制必须存在才能使其为零。抱歉,我有点糊涂。谢谢你的回答。

EN

回答 1

Stack Overflow用户

发布于 2022-12-02 08:35:25

当您一步一步评估2 ^ 3 ^ 4 ^ 5时,您会得到:

  • 2 ^ 3 1
  • (2 ^ 3) ^ 4 == (1) ^ 4 == 5
  • ((2 ^ 3) ^ 4) ^ 5) = ((1) ^ 4) ^ 5 == (5) ^ 5 == 0

在二进制文件中,为了使操作更加清晰:

  • 2 ^3成为: 0010 ^ 0011 == 0001
  • 1 ^4成为: 0001 ^ 0100 == 0101
  • 5 ^5成为: 0101 ^ 0101 == 0000

按位异或:相同位变为0,不同位变为1

即使您从右到左计算:2 ^ (3 ^ (4 ^ 5)) == 2 ^ (3 ^ (1)) == 2 ^ (2) == 0

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74652372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档