xor:异或(XOR)的基本理解

要理解异或(XOR),就要从与门(AND),非门(NOT)和或门(OR)开始理解。

关于与门

 

以左端为Input A和Input B,右端为output,可以得到:

关于非门

 非门可以简单理解为将“1”转化为“0”或将“0”转化为“1”的一个步骤,即:

关于或门

或门同样有两个输入端,只是在输出上与与门不同,即:

 而XOR就建立在以上三种门之上。

关于异或门(XOR)

 我们从其结果来看,即:

从上表来看,其与与门的区别只在于当两个输入端都为“1”时,XOR得到的是“0” 。

那么应该如何去实现这个过程

首先建立两个输入端,使两个输入端同时连接一个与门和一个或门,即

 之后由于我们最后要使两个“1”输出“0”,可以在最后使用与门并使最后输入与门时,输入为“1”和“0”,这样可以保证XOR除输入两个“1”之外的结果与与门保持相同。

那么为了在输入最后的与门时得到一个“1”和一个“0”就需要加以调整。

当尝试输入两个“1”时,上图中的与门会输出“1”而或门也会输出“1”,为了得到“0”,就需要增加一个

非门。

假设在或门后增加非门,即

可以发现当输入“1”和“0”时,输出并不符合预期结果。

那么在与门后增加非门,即

 经过验证可以发现符合预期,这样便得到了异或门(XOR)。

 

相关推荐

相关文章