我们知道计算机的基础是数字电路而数字电路的基础是布尔代数。
布尔代数是1847年由英国数学家乔治·布尔发明的,他想用数学符号来表示人类的逻辑思维,
普通的数学运算是使用十进制的加减乘除,而布尔代数是使用二进制的与或非运算。
比如上面表格的例子,输入是A和B,输出是X,与运算就是当a b输入都为1的时候输出才为1,其他情况输出是0,
而或运算是当a b其中一个为1那么输出就为1,非运算是输入跟输出相反,输入0输出1输入1输出0。
那么布尔代数跟数字电路有什么关系呢,我们看下面的两个电路:
我们把开关闭合用1来表示,开关断开用0来表示,灯亮用1来表示,灯灭用0来表示,
那么左边的串联电路就相当于是与操作,只有当两个开关都闭合的时候,灯才会亮。
而右边的并联电路就相当于是或操作,其中一个开关闭合,灯就会亮。
如果只使用这种普通的开关只能实现一些最基本的逻辑,如果我想实现一些其他比较复杂的逻辑
这种电路就实现不了。
比如我想实现当两个开关都闭合的时候灯是灭的,然后两个开关闭合一个或者是两个都断开的时候灯却是亮的,你如果使用这种普通的开关,就实现不了这种逻辑。
那么这时候就需要结合继电器来实现,继电器最开始是用在电报里面,电报需要去布线,随着你线的长度越来越长那么它的电阻就会越来越大,信号在传输的过程中常常会被消耗掉,那么接收方就接收不到信号,
那么这时继电器就派上了用场,继电器它可以接收一个弱的信号,然后经过新的电源去增强以后再发送出去起到中继的作用,
继电器的结构也比较简单,如下图,它有一个新的电源,有一个电磁铁,然后有一个金属弹片
它可以在in这里输入一个弱的信号,然后电磁铁通电以后,就会把这个弹片拉下来,这时候电源跟输出out就导通了,那么这时候就可以输出一个增强的信号。
然后我们把多个继电器组合起来,就可以实现一些比较复杂的逻辑,比如下面这个电路就可以实现我们前面说的,当两个开关闭合的时候灯是灭的,当两个开关都断开或者是断开开一个的时候灯却是亮的
在数字电路里面会把高电压用1来表示,低电压用0来表示,比如上面的电路,开关闭合的时候输入的是高电压就代表输入的是1,当这两个弹片都被拉下来的时候,输出的是低电压就代表输出的是0。
像这些开关,继电器跟布尔代数在19世纪就已经发现了,但是经过了很长的时间都没有人把这些联系起来,直到20世纪30年代才有人想到可以用布尔代数来设计电路。
主要贡献者是英国科学家克劳德· 香农,他在1938年发表了一篇著名的论文叫做<继电器与开关电路的符号分析>,他在论文里面就阐述了怎么用布尔代数来设计和优化电路,从而奠定了数字电路的理论基础。
同时香农还是信息论的发明者,他在1949年发表了一篇论文叫做<通讯的数学原理>,奠定了信息论的基础,在计算机中的bit这个单词也是来自于这篇论文。
继电器的组合被称为逻辑门,它们构造的基本的逻辑电路也称为门电路,常见的