09-计算机连数字2都不认识?
你好,我是悦创。
上一节课,我给你讲的是抽象思维,抽象思维中一个很重要的内容就是把各种各样的东西都抽象成数字,这样做是因为计算机只能看懂数字构成的信息。
不过,这并不意味着计算机认识所有的数字,你可能想不到啊,计算机其实只认识0和1,而2以后的数字,它是一个也不认识的。
诶?既然它连2都不认识,怎么能做复杂的运算、怎么能完成各种各样的事情呢?这里头,又涉及问题的转化了。
我先给你说说计算机是怎么数数的吧。
平时你数数的时候,肯定是0、1、2、3、4这样一直数到9,然后进一位变成10。然后接着11、12、13继续数下去,对吧?这个数法啊,每到十就往前进一位,所以叫十进制。

咱们平常数数或者做数学题,用的都是十进制。这也比较好理解,咱们人类有10个手指头,掰手指头数数比较方便嘛。
但是呢,计算机没有手,它用的就不是十进制了,而是二进制。它只认识0到1两个数字。用这两个数字怎么数数呀?
开头两个还是0、1,到了第三个,就没有数字可用了。怎么办呢?你想想看,在十进制里,碰到这种情况,咱们是怎么做的呢?咱们会往前进一位,123456789后面进一位,就是10。

二进制也一样,数到1没有数字可用了,也往前进一位,变成一零(10),虽然一零(10)写出来跟咱们平时看到的十进制里的十(10)一样,但在电脑里,一零可不表示十啊,而是二进制里的2。相应的,二进制里的3呢?写出来就是一一(11)。

不管怎么样,今天你用的各种软件、玩的各种游戏都是建立在一大串0和1基础上的。那你可能会好奇了,计算机干嘛要用这么奇怪的计数方法呢?跟咱们一样用十进制不行吗?还真不行。
为什么呢?这件事,还要从300多年前讲起,最开始研究二进制的人叫莱布尼茨。如果你听过顾森老师的**《北大学霸的数学培优课》**,那你可能听过这个名字了。他可是个厉害人物,可以跟大名鼎鼎的牛顿相提并论。

在1701年的时候,莱布尼茨就发明了二进制的算术体系,而且这背后还有一段跟中国有关的小八卦。
当时啊,欧洲人派了很多传教士来中国,传教士就是到处向外宣传宗教的人。有些传教士呢,科学水平还是很不错的,莱布尼茨就跟其中的一些人关系不错。
有一次,他给一个传教士写信,信里就提到了自己新发明的二进制。这个传教士呢,在来到中国以后,对中国的文化也有了些个了解。他一看,诶,莱布尼茨发明的这个二进制,跟中国的一个东西看起来有点像啊,这个东西,就是八卦。
诶,这里的八卦可不是“小八卦”的意思哈,八卦最初的意思,是一组以“乾坎艮震巽离坤兑”为基础的符号系统。我在音频封面上给你放了一张八卦图,你可以看一下。

这上面的每一个图案就是一卦,每一卦都有三条横线组成。这三条横线,其实只有两种情况:一种,中间是连着的;另一种,中间是断开的。
咱们如果把断开的横当成数字“0”,连续的横当成数字“1”。那么,每一卦都可以变成一个由0和1组成的数字串。比如说“乾”卦,就是三根连续的线,那就是“111”。“坤”卦呢,三根断开的线,就是000。其他六卦,你可以自己试着翻译一下。
你看,古代的中国人,无意中也产生过跟二进制类似的思想。莱布尼茨知道了这一点之后,非常高兴,还把这个发现写进了自己后来的论文里。
不过,当时的科学界并不是很在意这个发明,都觉得这二进制能有啥用啊?
这个问题,或许当年的莱布尼茨回答不出来,但是今天,我们可以帮他回答了:二进制,是一种特别适合计算机的语言。它有三个特点,决定了今天的计算机选择用二进制,而不是十进制。
第一呢,二进制虽然只有2个数字,但一样可以表示所有的数字。
第二个特点是:二进制可以进行所有的数学运算。任何你喜欢或者讨厌的十进制数学题,二进制都可以做!这个特点没啥好说的,因为连十进制所有的数字都能表示成二进制了,十进制的数学运算当然也能翻译成二进制了。

说完前两个特点,你可能会问了:二进制能做的,十进制也能做,那我们何必多此一举,把十进制、二进制来回转换呢?计算机直接使用十进制不就好了吗?
这就要说到二进制的第三个特点了:在计算机里头,二进制比十进制简单。
在现在的计算机里面,计算是在芯片上进行的。什么是芯片呢?其实芯片有个更专业的名字叫“集成电路”,也就是把电路缩小到很小很小,你家电脑的芯片可能就像一片指甲盖那么大。

那用电路怎么表示二进制呢?其实很简单,芯片里,是用电路的开和关表示1和0的。你自己就可以在家里试一下。比如,按一下开关,灯就亮了,这就表示1,再按一下,灯就会灭掉,这就表示0。
二进制这么简单,那么十进制呢?光用开关可不行,开和关只能表示2个数字。看来,还得加上灯的明暗程度。
你家有能调节亮度的灯吗?除了用关掉的状态表示0之外,你还需要再调节出9个亮度,依次表示1-9。现在你看出问题来了吧?你要记住这9种亮度,其实是很困难的。

在芯片上也是一样,10种不同的信号特别容易搞混,而且电路越复杂,越不容易制造。反过来呢,二进制就简单多了,只要能开能关就够了。
于是,最后在芯片上使用的就不是十进制而是二进制啦!
其实,这种用最快、最简洁的方法解决问题的思想,在编程领域应用也特别广泛,不光是计算机采用的二进制,还是无论哪个程序员,也都会想让自己的程序写得越简洁越好。
那么,除了芯片里头,你还在生活中发现了哪些使用二进制的地方呢?在留言区里跟我说说吧。
下一集,咱们来解答另一个难题。现在你知道了,计算机还是用二进制最好。可是,电路的开开关关,怎么就能做数字运算呢?这个呀,就需要一种名叫“逻辑运算”的东西来帮忙了。下一集,咱们就来说说逻辑运算是怎么回事。我们下集见。
更新日志
b2cf4
-于5f5e5
-于860d6
-于b4079
-于cbb3a
-于76989
-于86c50
-于027da
-于