码农的世界

程序员|硬件基础之为什么一堆电路可以表示数字和运算?

2019-05-18  本文已影响79人  赵敏是程序媛

你有没有想过计算机核心部件就是一堆电路呀,电路怎么可以表示数字,字符呢?更奇怪的是电路为什么可以表示运算呢?

这个问题我也困惑过,今天一起来解开这个谜吧。

1

首先我们来看一个十进制数,比如7,表示成二进制数,就是0111。怎么得到这个数的呢?即十进制数和二进制如何转换的?我们先来看下图:

十进制数7转换为二进制数

先用7除以2,得到商3写下面,余数1写右边。我们再继续用3除以2,得到商1写下面,余数1写右边。我们继续,用1除以2,得到商0写下面,余数1写右边。最后我们把0移到右边,然后从下往上写出右边的数,即0111,就是十进制数7的二进制表示方法了。

是不是很简单!只要你会除法竟然就会!

转换好了二进制之后,我们再来看一下二进制运算。首先我们回忆下十进制数如何加减乘除的。

2

比如7+5,因为大于10了,所以需要二位来表示,对吧,先写个2,再在2的前面写1,这个1就代表10。对吧。

同样的,我们看二进制数1+1。1+1=2,是不是也要进位,那就是10。这里的1就代表2。

简单吧。

清楚了二进制数的表示,运算后,我们再来看,二进制数和电路图有什么关系呢?

3

这里我们需要先掌握布尔运算。什么是布尔运算呢?其实也非常简单。

逻辑运算又称布尔运算。
布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。他用等式表示判断,把推理看作等式的变换。这种变换的有效性不依赖人们对符号的解释,只依赖于符号的组合规律 。这一逻辑理论人们常称它为布尔代数。20世纪30年代,逻辑代数在电路系统上获得应用,随后,由于电子技术与计算机的发展,出现各种复杂的大系统,它们的变换规律也遵守布尔所揭示的规律。
表示方法
"∨" 表示"或"
“^”表示“异或”
"∧" 表示"且".
"┐"表示"非".
"=" 表示"等价".
1和0表示"真"和"假"

看表示方法,其实就是我们生活中的逻辑呀!对滴。那用二进制如何表示呢?

首先我们假设:1代表真,0代表非真。那么异或运算就是,1或1,结果是0。因为^符号两边的数相同。那1或0,0或1的结果就都是1。对吧。

我们再来看,0或0呢,因为两个数相同,那结果就是0,即非真。

其他布尔运算(或者说逻辑运算)类似,我们就不一一说了。

程序员|硬件基础之为什么一堆电路可以表示数字和运算?

上图的结果是不是很像咱们前面讲的二进制加法呢?1+1等于10,最后一位是0,和1^1=0,是不是很像。对了,这就是布尔运算可以表示二进制数运算的理论基础。

到这里我们已经打通了 十进制数--->二进制数--->布尔运算这条路了。最后一步啦,我们来看看电路图如何表示布尔运算的。

4

我们先来看下面的电路图(不要恐惧,这是初中物理的知识,一定比当时的小测验的题简单)。

程序员|硬件基础之为什么一堆电路可以表示数字和运算?

上面的是一个串行电路图,A和B分别是两个开关,F是灯泡,左边两个符号一个是电阻,一个是电源。

我们用1表示开关A闭合,0表示开关A打开。B相同。用1代表灯泡亮,0代表不亮。

那么只有当开关A和B同时关闭时,灯泡F才亮。开关A和B只要有一个打开,则灯泡F就不亮。那么有下图的真知表。

程序员|硬件基础之为什么一堆电路可以表示数字和运算?

这就是布尔运算的与运算。

与运算,即两个数同时为真,则结果为真。其他情况均为假。

到此,我们终于打通了从数到电路的关系。

十进制数,二进制数,布尔运算,电路图。

看懂了吗?这就是计算机核心部件是电路,竟然能表示数字和数字运算的理论基础。

看到这里的同学给自己送上掌声。你们太棒了。计算机的基础理论你们掌握了。

好了,今天就到这里。期待下一期吧


我是一名软件工程师,也是一位宝妈,我在”007不写就出局”践行写作成长 。如果你也想用写作的形式记录生活,精进学习,欢迎扫码,我们一起进步。

程序员|硬件基础之为什么一堆电路可以表示数字和运算?
上一篇下一篇

猜你喜欢

热点阅读