布尔运算,二进制和门电路

1845年,英国一位名不见经传的数学家乔治·布尔在礼拜时心血来潮,认为哲学问题可以用数学来表示。他将自己的想法编成书,即《逻辑的数学分析》和《思维规律的研究》,详细阐述了如何将逻辑问题转换成数学公式。

布尔代数中只有两个值:1和0;三种运算:逻辑加、逻辑乘和逻辑非。这里的1和0并不是数字意义上的1和0,而是一个事物的两种矛盾状态。比如一个人,活着就是1,死了就是0。

虽然乔治·布尔的想法很有创新意义,但在当时并不受重视,甚至一度被认为是伪科学。直到乔治·布尔去世多年后,另一位计算机先驱人物,密码学的奠基人香农发现了这份被世人遗忘的宝藏。1938年,香农在《继电器与开关电路的符号分析》中,将布尔代数与开关电路联系起来,凭借该文章,年仅22岁的香农成功取得了麻省理工电气工程硕士学位。

人们可以依靠继电器构成逻辑门电路,从而逻辑上的运算结果:

与门:当两个输入端 A、 B同时为“1”时, 输出端 C 才为“1” , 否则为“0”;

或门:当两个输入端 A、 B 中, 只要至少有一个输入端为“1”时, 输出 端 C 就为“1

非”门:输出状态总和输入状态相反。

 

从这三种基本的门电路,可以构成与非,异或等其他门电路,它们的符号和结构如下图所示:

无形的代码与有形的电路:详解CPU是如何识别0和1

 

有了门电路,人类制造出了第一款电子管计算机。在设计之初,科学家们还是沿用了人类的思维采用了十进制,用十个真空管代表一位上的0~9,看起来是很方便,但一个真空管对应一位数实在是太浪费了,计算机的体积也非常大。此时另一位不世出的天才科学家又站了出来,他就是被誉为“现代计算机之父”的冯诺依曼。

冯诺依曼提出将CPU改为了二进制,二进制的好处在于它刚好与高低电平相对应,他规定1代表高电平,0代表低电平;除此之外,二进制还有一个优势就是精度够高,举个例子,0~5V分成10份,电压每变化0.5V就代表十进制0~9中的一个值,当时电子元件的远不如现在这般精密,一旦出现误判后果是非常严重的。得益于这两点,二进制的设计一直被沿用至今。