【问题标题】:Exclusive logical sum (XOR)异或逻辑和 (XOR)
【发布时间】:2014-10-07 14:28:38
【问题描述】:

我有这个问题:

答案是D,因为他们解释:

(n XOR 1111 1111) 将反转 0 到 1 和 1 到 0 ,然后加上 结果为 1,我们有二进制补码

但据我了解,异或运算是:

当两个输入不同时输出真的逻辑运算

例子:

1011 XOR 1000 = 0011

那么 (n XOR 1111 1111) 怎么能倒置 n (一个补码)?

【问题讨论】:

  • 何不试试看呢?
  • @KeithNicholas 哈哈,天哪,问题就这么简单。我从来没有尝试过,我只是一直在想它不可能,哦,天哪,这是我今天学到的一个非常重要的教训。您的评论对我来说很好,只需输入答案字段,我会标记它,非常感谢!!
  • 我的评论不是答案,它只是你需要做的才能正确学习它。下面的答案在技术上是正确的。但总的来说,您应该自己执行按位运算,并且对它们有一个很好的感觉。以后会有很大的不同

标签: xor


【解决方案1】:

因为您在第二个操作数中使用全 1,

  • 如果第一个操作数有1,那么你会得到1 XOR 1 = 0(相同的输入,所以false

  • 如果第一个操作数有0,那么你会得到0 XOR 1 = 1(不同的输入,所以true

所以对于第一个操作数,1 变为 00 变为 1。因此,数字是位反转的。

所以在你的例子中,

1011 XOR 1111 = 0100

【讨论】:

    【解决方案2】:
    n xor 1 = not n
    

    因为

    如果 n 为 1,则它与 1 没有区别,因此输出为 0

    如果 n 为 0,则它确实不同于 1,因此输出为 1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 2012-12-19
      • 2018-11-18
      相关资源
      最近更新 更多