天天看点

《逻辑与计算机设计基础(原书第5版)》——2.6 异或操作和异或门

除了图2-3中所示的异或门之外,异或操作还有自己的独特性质。用符号表示的异或操作实现下列函数运算

《逻辑与计算机设计基础(原书第5版)》——2.6 异或操作和异或门

如果仅有一个输入变量为1,则结果等于1。异或非又称为同或(equivalence),是对异或进行取反,可以用函数表示为:

《逻辑与计算机设计基础(原书第5版)》——2.6 异或操作和异或门

当X和Y的值都等于1或者都等于0时,函数的值等于1。通过真值表或者下面的代数处理可以看出,这两个函数互为取反。

《逻辑与计算机设计基础(原书第5版)》——2.6 异或操作和异或门

这些性质中的任何一个都可以利用真值表或者将运算用等效的布尔表达式代替的方法来进行验证,同时还可以看到异或运算满足交换律和结合律,即

《逻辑与计算机设计基础(原书第5版)》——2.6 异或操作和异或门

这意味着异或门的两个输入端可以相互交换而不影响运算结果,而且我们可以按任意顺序计算三变量的异或运算,因此三变量或更多变量的异或运算可以不需要借助括号来表示。

两输入的异或函数可以用普通的逻辑门来实现,这需要两个非门、两个与门和一个或门。异或操作满足结合律意味着异或门可以有两个以上的输入端,但两个以上变量的异或概念将由下面介绍的奇函数来替代。因此,没有符号可以用来表示多于两个输入的异或。根据对偶性可知,异或非可以由偶函数来替代,也没有符号可以用来表示两个以上的输入。

奇函数

三变量或三变量以上的异或运算可以通过将运算符用等效的布尔表达式来替代的方法,转化成普通的布尔函数。例如,三变量的异或运算可以转化为如下的布尔表达式:

《逻辑与计算机设计基础(原书第5版)》——2.6 异或操作和异或门

从布尔表达式中可以清楚地看出,当只有一个变量等于1或者所有三个变量都等于1的时候,三变量异或运算的值等于1。因此,与二变量函数只需要一个变量的值为1相比,三变量或者三变量以上的函数则需要奇数个变量的值为1。所以,多变量异或运算又被定义为奇函数(odd function)。事实上,严格说来,这才是三变量或者三变量以上运算的正确含义,“异或”这个名字只适合于二变量。

奇函数的定义可以通过将函数绘制在卡诺图上得到清晰的解释。图2-22a所示的是三变量奇函数的卡诺图。函数的4个最小项两两之间至少有两个字符不相同,因此在图上它们彼此不相邻,相互之间的海明距离为2。奇函数由4个有奇数个1的最小项所确定。四变量的情况如图2-22b所示,图中8个被1所标记的最小项构成奇函数,注意图中1方格之间的距离模式。需要说明的是,图中没有标记为1的最小项有偶数个1,组成奇函数的反函数称为偶函数(even function)。奇函数可以通过多个两输入异或门来实现,如图2-23所示。偶函数则可以通过用同或门取代输出门来获得。

《逻辑与计算机设计基础(原书第5版)》——2.6 异或操作和异或门