逻辑OR运算和二进制加法有什么区别?

时间:2016-03-31 09:54:33

标签: xor

我试图理解二进制加法和逻辑OR表的不同之处。 是继续向前运行1还是哪一项结转运行而哪一项没有?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

首先,添加。基本上就像在小学时加数字一样。但是,如果您有一个1位与一个1位对齐,则会得到一个0并带有1的进位(即10,基本上类似于5加{{ 1}}(以10为底)。否则,请将其添加为“常规”(以10为底)数字。例如:

5

请注意,在最左侧的列中添加了两个 ₁₁₁ 1001 + 1111 ______ 11000 以得到1,而另外一个10则得到1(类似于{{1} }。

现在,假设使用“逻辑或”,则表示按位或(基本上对每对对应位执行逻辑或(包括)的操作),然后有这个:

11

在这里只有5 + 5 + 5位是两个位都是 1001 | 1111 ______ 1111 的情况。

最后,由于您标记了这个问题0,我认为这也是按位的。

0

在这种情况下,两个xor位给出 1001 ^ 1111 ______ 0110 = 110₂ ,当然,两个1位给出0

答案 2 :(得分:0)

使用逻辑OR,您将获得逻辑结果(布尔值)。 IOW true或true为true(除了false或false之外的任何内容都是真的)。在某些语言(如C)中,除0之外的任何数值都表示true。有些语言使用true,false(bool,Boolean)的显式数据类型。 在二进制OR的情况下,您正在对两个二进制值的位进行OR运算。即:1(二进制1)按位OR 2(二进制10)是二进制11:

01

10

11

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