“反人类”的二进制
2019-02-24逸之
逸之
前一期我们介绍了各种各样的进制,比如,最常见的十进制,投票时画“正”字的五进制,1周7天的七进制,1年12个月的十二进制……
可是,你知道吗?还有一种我们经常听到,平时却很少使用的进制,这种进制是电脑们的语言,电脑们在私底下讲悄悄话就靠它。它就是二进制。二进制只用0和1两个数字就可以表达一切,听起来是不是非常简单?但假如你想用二进制做计算,那可就非常“反人类”了。
二进制的来历
三百多年前的某天夜里,一艘客轮正缓缓驶在寂静的英吉利海峡,德国哲学家威廉·莱布尼茨扶着船头的栏杆仰望星空,他思考着:
白天与黑夜来回交替,太阳下山之后轮到月亮值班,天空与大海遥遥相望;
我从岸上来到海面,又从海面回到岸上;
我有着缺一不可的左手和右手,也體会过快乐和悲伤……
这就是世界和生命的本质,任何事物都有正反两面。如果给我数字1来表示正面,给我数字0来表示反面,我可以用这两个数字讲述世间的一切。
他似乎想起了什么,兴奋地跑回船舱,翻开之前朋友赠予的那本来自中国的《易经》,拍案叫绝:“对!对!长线和短线就相当于0和1,这就是我一直在思考的二进制!原来拥有大智慧的中国古人早就悟出来了!”
“反人类”的二进制计算
用十进制的法则推一推,我们就知道二进制是逢“2”就进位。平常我们用十进制数数,会说0、1、2、3、4、5、6……10。假如我们用二进制数0~ 10,你知道怎么数吗?
别着急,让我们先来试一试下面这个找规律的题目吧:0000 0001 0010____0100 0101 0110____1000 1001 1010
开动脑筋,这两条横线上应该填写什么数字呢?其实,这些由0和1组成的数字正是0~ 10的二进制表示。现在,让我们一起试着用二进制数数,从最低位开始:
0是0。
1是1。
到2就需要进位了,最低位归零,高一位加上1,就成了10。
3就是在10的基础上加1,即11。
4就是在11的基础上再加1,最低位满2,向高位进1后归零,高位也满2了,就向更高位进1后归零,结果就是100。
依次类推,无穷尽也。
当数比较小的时候.我们可以用这样的方法推出二进制数,但对于比较大的数,这样类推下去就有点儿费时了。
这时,我们就需要一个简便的推法了:对一个全是1的二进制数,从右往左,第1位表示1,第2位表示2,第3位表示4(即2个2),第4位表示8(即2个4),第5位表示16(即2个8)……
发现了吗?每一位都是前一位的两倍。越往高位,数值增长得越快,第11位就表示1024,第12位表示2048。是不是很有意思呢?
不过,假如我们在生活中突然改用二进制交流,可能会出现下面的情况——
嘿,你知道今年是多少年了吗?
等等,让我算一算今年是11111100011年。
上次你跟我借的100元还没还我。给。
不不,是二进制的100元,换算成十进制是4元。
看来在生活中,比起“反人类”的二进制,还是十进制更便于人们使用呢!
关于二进制还有个笑话——世界上有10种人,一种是懂二进制的,一种是不懂二进制的。
这个笑话到底是什么意思呢?
哈哈,如果你懂二进制,你就会知道这句话中的“10”代表2,也就是“世界上有2种人”啦。
哈哈,原来如此。所以才说一种是懂二进制的,一种是不懂二进制的!
怎么用二进制与电脑“交流”?
这个问题可不简单。想要与它交流,就要用它的语言跟它交流。那么,它又是怎么听懂我们的话的呢?
假如我们想让电脑做个简单的加法:4+8。我们得先让电脑准备好两个放加数的“小盒子”,比如:OO01号盒子和0010号盒子。
为什么要准备“小盒子”呢?因为电脑的主要工作是搬运数据和计算数据,它从一个个由电子元件组成的“小盒子”里读取数据,或者把计算结果放进去,又或者把一个“小盒子”里的数据“倒”到另一个“小盒子”里。
接下来我们要给电脑下命令,怎么让电脑“听”懂我们的命令呢?好办,也用二进制告诉它!先跟电脑约定:听 到0000号命令,就把数字放进盒子;听到1111号命令,就把两个盒子加起来。
我们先用“人类的语言”把要和电脑交流的话写出来:
(1) 0000号命令,把4(二进制为0100)放到0001号盒子;
(2) 0000号命令,把8(二进制为1000)放到0010号盒子;
(3) 1111号命令,把0001号盒子和0010号盒子加起来。
人类的语言电脑可听不懂.我们只要把二进制的部分挑出来交给它就行了:
0000
0100
0001
0000
1000
0010
1111
0001
0010
是不是电脑听懂了,人却眼花了?哈哈!