【问题标题】:What is XOR operator?什么是异或运算符?
【发布时间】:2016-05-11 12:06:42
【问题描述】:

我知道如果 xor 运算符的输入不同,则它返回 true,但是有了这些知识,我无法理解互联网上的各种编码问题。 像这样:

https://www.hackerearth.com/february-easy-16/algorithm/utkarsh-and-sub-array-xor-february-easy/

https://www.hackerrank.com/contests/hourrank-5/challenges/xor-se

请帮助我理解这些。 顺便说一句,我使用 C++ 进行编码。解释如何在这些中使用 XOR 运算符就足够了,无需解释完整的问题。

【问题讨论】:

  • Google 是你的朋友!
  • 我试过了,但没有成功。每个结果都说明“如果两个输入不同,XOR 运算符返回 true”
  • 如果你想要按位独占,那就是operator ^。如果你想要一个布尔异或,那就是operator !=

标签: operator-keyword xor


【解决方案1】:

模 2 的加法等价于 XOR。

0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0

等于

( 0 + 0 ) mod 2 = 0
( 0 + 1 ) mod 2 = 1
( 1 + 0 ) mod 2 = 1
( 1 + 1 ) mod 2 = 0

现在您可以使用 mod 来解决 XOR 问题。

【讨论】:

    【解决方案2】:

    在 C/C++ 和许多其他语言中没有逻辑运算符 xor,只有按位。它对二进制形式的每个对应的操作数位单独工作。

    【讨论】:

    • 有一个逻辑异或运算符。是!=
    猜你喜欢
    • 2014-12-10
    • 1970-01-01
    • 2019-05-03
    • 2012-05-11
    • 2013-07-31
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 2015-05-28
    相关资源
    最近更新 更多