基本的逻辑运算,只有三种,即:与、或、非。
用它们复合一下,就又出现了一种常用的算法:异或。
用英文来写,也就是:and、or、not、xor。
以上这些,都是文字的写法。
如果用运算符号来表示,该怎么写呢?
上网一查,可就莫衷一是了。
在集合论中,有:交集、合集、补集、等等,各种符号;
在 C 语言中,有:&、|、~、!、等等,许多符号;
此外还有:∧、∨、上划线,等等。
唉,人也多,嘴也多,说不清道理。
还是使用电子专业的吧。
与,当然是用 “·” 来表示了,经常也省略不写。
或运算符,就先写成加号 “+” 吧。
但是,它会和算术中的加法混淆,所以,本博文中,也有时直接写成 “or” 。
非运算,应该用上划线表示,但是,打字打不出来。只好在前面写条斜线 “/” 冒充一下。
异或运算,就用 “⊕” 当做运算符了。
-------------------------
在逻辑运算中,变量,都是使用英文字母。
比如,与非门的功能是:F 等于 AB 与非。就可以写成:F = /(AB)。
同理,异或运算,就写成:F = A ⊕ B = /A·B + A·/B。
在逻辑运算中,常量,只有两个:1 和 0。
虽然,在此处使用了阿拉伯数字,但是它们并没有数字的意义,仅仅是代表两种状态。
-------------------------
各种逻辑运算,可见下图。
图中写的摩根定律,是逻辑运算中所特有的。
摩根定律,可以归结为:与非,等于非或、或非,等于非与。
另外还有:交换律、结合律、分配率。使用方法与算术运算相同。
-------------------------
一个逻辑问题,可以用多种形式来描述。
用语言文字来表达,谁都能看懂,这应该算是基本的方式,但是,这也是最麻烦的方式。
在电子专业领域,表示逻辑问题的形式还有:
逻辑表达式;
真值表;
卡诺图;
逻辑图;
波形图。
其中的逻辑图,也就是电路图。
根据电路图,可以去购买器件,连接导线,进行实验。
现在,也可以在计算机中进行 “仿真实验”,并不需要使用实体的器件。
PROTEUS,就是一个良好的 “仿真软件”。
在此软件中做成功的实验,移到实际的环境中,基本上都可以成功。
------------------------
一个逻辑问题,可以写成不同的逻辑表达式、画出不同的逻辑图。
比如异或运算,它是由基本逻辑运算复合而成的。
它是怎么复合的呢?
看看下面的逻辑表达式吧:
F = A ⊕ B
F = /A·B + A·/B
F = (/A + /B) · (A + B)
F = /(AB) · (A + B)
F = /(AB) A + /(AB) B
F = /(/(/(AB) A) · /(/(AB) B))
。。。
这些表达式,功能是完全相同的。
每一个表达式,都可以画出一个逻辑图,即电路图。
下图中,仅画出了三种不同的电路。
几个不同的电路,分别使用了不同的器件进行组合。
左下角的是一个单独的异或门器件 74LS86。其内部,也一定是由几个门组合在一起的。
但是,图中各电路的功能,肯定都是相同的,实验方法如下。
图中左边,是两个拨动开关,一上一下,就给各个电路输入了两个不同的信号。此时,每个电路的输出端,都是 “红点”,这就表示输出的是 “高电平”。这种输出,完全符合 “异或” 的算法。
多拨动几次开关,可观察到,各个电路 F 端显示的色点,是相同的。这就说明,这四个电路功能相同,都是对输入信号进行异或运算。
在实际运用中,应该选用哪种电路?
这与所用的器件密切相关。
主要要考虑:
电路越简单,故障率越低;
工作速度快;
易于购置,成本也低;
加工工艺简单,制作方便,维护方便;
。。。
根据实际情况,临时修改逻辑表达式,是常有的事情。
所以,逻辑运算、逻辑表达式的等效转换,都是必须熟练掌握的。
对于计算机专业,很多初入门的人,往往只是把逻辑弄正确就交差了。
高级人才,则还要追求速度、稳定性,等等。
本文完