我试图理解二进制加法和逻辑OR表的不同之处。 是继续向前运行1还是哪一项结转运行而哪一项没有?
答案 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
11
这是3.因此当值没有共享位(如标志值)时,二进制OR也是一个加法。