多bit的异或运算

2021年8月20日 / 22次阅读 / Last Modified 2021年8月20日
数值计算

门电路中的与们或门,其输入都可以多于两个,这也很好理解。多个bit的与(AND),只要有一个bit为0,结果就是0;多个bit的或(OR),只要有一个bit为1,其结果就是1。

异或(XOR)运算也可以多bit同时进行。

先说结论:多个bit进行异或(XOR)的时候,奇数个1时,结果为1;偶数(含0)个1时,结果为0。

1遇到1变成0,1遇到0还是1,就像扑克牌比大小,只是需要注意,这个结论说明一个重要的细节:多个bit在XOR的时候,结果与计算顺序无关。这跟AND和OR的计算一样。

同或(XNOR)就是异或取反,道理一样。

下面是python的演示,以上结论应该是可以用数学进行证明的。

>>> 1^0^1^0^1
1
>>> 1^0^1^0^1^0
1
>>> 1^1^1^0^0^0
1
>>> 0^0^0^1^1^1
1
>>> 1^1^0^0^1^0
1
>>> 0^0^1^1^0^1
1
>>>
>>>
>>>
>>> 0^0
0
>>> 0^0^0
0

当有3个1时,无论如何写表达式,结果都是1;任意个数的0进行XOR,结果都是0。

-- EOF --

本文链接:https://www.pynote.net/archives/3756

留言区

《多bit的异或运算》有1条留言

您的电子邮箱地址不会被公开。 必填项已用*标注

  • 麦新杰

    真实的CMOS门电路,一般input最多就4个,更多的input都是用基本的门电路级联起来实现的。这跟CMOS器件本身的电器特性有关系。 [回复]


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top