【问题标题】:what is the difference between logical OR operation and binary addition?逻辑或运算和二进制加法有什么区别?
【发布时间】:2016-07-19 16:55:26
【问题描述】:

我试图了解二进制加法和逻辑 OR 表的不同之处。 是否都结转1,或者如果不是,哪个结转操作,哪个不结转?

【问题讨论】:

标签: xor


【解决方案1】:

我将尝试通过一些插图来澄清几点。

首先,加法。基本上就像在小学加数字一样。但是如果你有一个 1 位与 1 位对齐,你会得到一个 0 和一个 1 进位(即10,本质上类似于5 加上基数为 10 的 5)。否则,将它们添加为“常规”(以 10 为底)数字。例如:

  ₁₁₁   
  1001
+ 1111
______
 11000

请注意,在最左侧的列中添加两个1 得到10,另一个1 得到11(类似于5 + 5 + 5)。

现在,假设“逻辑或”是指按位或(一种基本上对每对相应位执行逻辑或(包含)操作的操作),那么你有这个:

  1001
| 1111
______
  1111

这里你应该有一个0位的唯一情况是两个位都是0

最后,既然你标记了这个问题xor,我假设它也是按位的。

  1001
^ 1111
______
  0110 = 110₂

在这种情况下,两个1-bits 给出一个0,当然两个0-bits 给出0

【讨论】:

    【解决方案2】:

    使用逻辑 OR,您会得到逻辑结果(布尔值)。 IOW true OR true 为 true(除 false OR false 之外的任何内容均为 true)。在某些语言(如 C)中,除 0 之外的任何数值都表示真。有些语言使用明确的数据类型来表示 true、false(bool、Boolean)。 在二进制 OR 的情况下,您正在 ORing 两个二进制值的位。即:1(即二进制1)按位OR 2(即二进制10)是二进制11:

    01

    10

    11

    为 3。因此,当值没有共享位(如标志值)时,二进制 OR 也是一种加法。

    【讨论】:

      【解决方案3】:

      异或(XOR)操作类似于二进制加法,除了 从一个位位置到下一个位位置没有进位。因此,每一位 位置可以独立于其他位置进行评估。

      【讨论】:

        猜你喜欢
        • 2015-07-03
        • 1970-01-01
        • 1970-01-01
        • 2014-01-17
        • 2016-08-24
        • 2020-09-07
        • 1970-01-01
        • 2021-01-02
        • 1970-01-01
        相关资源
        最近更新 更多