【转】计算机为什么是二进制?
1与0,一切数字的神奇渊源。这是造物美妙的典范,因为,一切无非都来自上帝。
从一枚古银币谈起
1697年元旦,莱布尼茨写了一封信给鲁道夫·奥古斯都公爵。写信的同时,他赠送了一颗自己制造的银币给公爵,这颗银币的出现,真正预示着二进制的诞生。
银币的正面当然是公爵帅气威风的肖像,这是为了获得“科研经费”必须做出的妥协。反面是一则创世故事:水面上笼罩着黑暗,顶部光芒四射……中间部分雕刻的是从1到17的二进制数学式。
考虑到公爵的智商,文笔晦涩的莱布尼茨讲述了他构思的一枚题为“造化之象”的纪念币:全能的上帝从无创造有。现在我们可以说,数字的起源是世上能最好展示和说明这种力量的事物,它以“一”和“零”或者说“无”的形式呈现,既朴素又简练。
银币上面刻着十进制与二进制的对比状态:
十进制 二进制
0 0
1 1
2 10
3 11
4 100
……(以此类推)
13 1101
14 1110
15 1111
16 10000
17 10001
从这一天起,现代数学意义上的“二进制”诞生了。
1十进制PK二进制
牛顿与莱布尼茨的对话
牛顿实在是看不下去了,你丫为了骗“科研经费”,又开始忽悠领导了。
作为莱布尼茨的老对手,牛顿这次放出话来要正面KO死莱布尼茨。
老祖宗传承下来的十进制不是用得好好的吗?搞个二进制出来完全是制造社会混乱,混淆人类视听,可惜英国的警察不能跨省去德国,否则早就把这厮抓回剑桥整成神经病。
我都用它推导出万有引力来了,还有什么事情十进制搞不定?
莱布尼茨心里也正窝着火呢,PK就PK,关于微积分的事情,你丫多次“洗我的稿”还没时间找你呢,正好一起算总账。
PK正式开始:
牛顿:你丫凭什么说二进制比十进制更简洁?
莱布尼茨:上帝只用二根手指就可以搞定一切。
牛顿:你确定两根手指可以演算世间万物?
莱布尼茨:你看看我这张东方的康熙皇帝赐予的“先天八卦图”就明白了。
牛顿吓了一大跳,我靠,这丫背景很硬,连东方的皇帝都搞上关系了,我得小心。
牛顿认真研究了下《莱布尼茨——二进制与伏羲八卦图考》,作为具有大智慧的人物,牛顿恍惚有些明白,他心中怦怦直跳,莱布尼茨这丫看来又要搞大事啊。
牛顿当然不会认输:可二进制与十进制比,在计数上没什么太大意义。
莱布尼茨:计数上意义不大,但它具有逻辑性,“零”表示“无”,“壹”表示“有”,我的二进制不是代数运算,而是数理逻辑运算。
…………(这个有点难,牛顿花了点时间才算整明白)
牛顿:可这二进制实在太麻烦,完全没有办法制造机器运算。
莱布尼茨:我这个又不是给你用,我这个是给计算机准备的。
牛顿傻眼了:计算机是什么玩意儿?
莱布尼茨:说了你也不懂,那是200多年后的宝贝。
牛顿气得口吐白沫:就不能好好说个话吗?
莱布尼茨:没办法,你代表的是古典十进制,我代表的是未来的二进制。
2为什么计算机只爱“二进制”
人类天生有十个手指,自然也就有了十进制。
在亚马逊边上打渔回来分食人鱼,所有人伸出十个手指,基本够用。
那数字到底怎么表述呢,人类毕竟是视觉动物。
东方的圣贤说:零一二三四五六七八九十……
西方的大哲说:one,two,three,four,five,six,seven,eight,nine,ten.....
两者争得不可开交时,从沙漠赶来的阿拉伯人翻译道:还是用我们的0123456789吧。
经过上千年的折腾,人类基本达成了一致,看在真主的份上,那就用阿拉伯数字。
但到了计算机时代,计算机怎么识别0123456789呢。
伟大的冯诺依曼为这事一脸愁容,折腾了一年,才发现问题出在十进制。
这时候一个聪明人想到了:电这东西其实可以表示很多状态,比如用电流来表示数字,0~0.9A表示0,1A表示1,2A表示2,3A表示3。想到这里,聪明人开始自我表扬了,这世界上还有难题可以击倒我吗?!
冯诺依曼翻了个白眼,这个还需要你提醒吗,这毕竟是1945年,二次大战还没有完全结束呢,这个时候的电子元件根本无法让电流变得非常稳定。
聪明人表示了不满:这都控制不了,搞什么科学研究。
冯诺依曼心中有一万匹草泥马跑过:you can you up, no can no bb!
其实这还不是冯诺依曼最担心的,最让人焦虑的是图灵提出来的“计算思想”的问题,就算用电流计算的方式表示出10个状态,也没有办法让电脑真正思考啊。毕竟电子计算机除了计数之外,还有判断对错的问题。
这个晚上,冯诺依曼做出一个重要的决定,根据电子元件双稳工作的特点,在电子计算机中采用二进制。
3二进制的计算原理
我的智商有限,让诸葛亮先生来告诉你二进制的计算原理。
诸葛亮为了北定中原兴复汉室,亲自驻守西城,此时的司马懿兵强马壮,诸葛亮派爱将马谡驻守街亭,与西城首尾相望。
街亭山高谷深,地势险要,为兵家必争之地,进可攻关中,退可守陇右。
诸葛亮叮嘱马谡:魏军若来100人,你就点亮1盏“孔明灯”通知我,我想清楚知道魏国来了多少敌军,我派王平和赵云做好准备,这次必将活捉司马懿。
马谡脑瓜儿挺机灵:丞相我懂了,若是敌人来了100个,我就放飞1盏孔明灯。若是敌人来了1000个,我就放飞10盏孔明灯。若是敌人来了10000个,我就放飞100盏个孔明灯。若是敌人来了100000个,我就放飞1000盏孔明灯。
诸葛亮差点跳起来:你以为孔明灯那么好做,放飞250盏孔明灯,你知道要多少军费吗?今天下三分,益州疲弊,你还这么浪费。
马谡脑眼珠一转:丞相我懂了,敌人来了一个,我就点亮一次,这样的话,我就只需要1盏孔明灯了。
诸葛亮长叹了口气:幼常啊,你想一想,我现在快五十岁的人了,又近视得厉害,你认为我能够看得清楚你点了多少次吗?而且你这点来点去的,中间万一数错了呢?
马谡这下傻眼了:丞相,求答案。
诸葛亮摇了摇羽毛扇:你得学学二进制,多安几盏孔明灯,你把它们装在街亭最高处,但注意,必须以同样的距离排列。
马谡完全糊涂了:丞相,什么是二进制?
诸葛亮摇了摇羽毛扇:二进制,乃天人之学也。
两人耳语甚久,马谡似懂非懂,最终拜服,丞相乃天人也。
诸葛亮道:现今你明白了二进制,只须排列好10盏灯,就可以将敌情准确上报。我在西城定好位置,按照定好的方位观察亮灯的位置,就可以运筹帷幄。
0000000000,8盏灯全灭,说明无敌军来犯。(状态0)
0000000001,第一个位置亮了灯,来了100个敌人,你负责干掉他就行了。(状态1)
0000000010,第二个位置亮了灯,来了200个敌人,小菜一碟,街亭无忧。(状态2)
0000000011,第一二位置都亮了灯,来了300个敌人,也不是什么大事。(状态3)
0000000100,第三个位置亮了灯,来了400个敌人,派出小股军队灭了他们。(状态4)
0000000101,第一三位置都亮了灯,来了500个敌人,得小小注意下了。(状态5)
诸葛亮担心马谡还是没有真正地听明白,特意给了他一张密码对照表,按照这个密码表,点起孔明灯就是了。
附表:
10进制编号 灯泡表示
状态 1 0000000001
状态 2 0000000010
状态 3 0000000011
状态 4 0000000100
状态 5 0000000101
……(以此类推)
状态 996 1111100100
状态 997 1111100101
状态 998 1111100110
状态 999 1111100111
状态 1000 1111101000
这就是二进制的基本工作原理,说实在的,确实比十进制有用多了。
4《周易》和二进制
很多人谈到二进制,就会说起中国的《周易》。
还有一些人迷信:因为白晋给莱布尼茨看了中国的先天八卦图,莱布尼茨才创造了二进制。
在很多人眼中,中国传统文化就是这么所向披靡,无往而不胜。
事实上,莱布尼茨在没有看到先天八卦图前的1697年,就已完成了论文《二进制算术》的草稿,也就是他在向公爵忽悠“科研经费”时已经完全搞定论文。古代的科学家真是非常敬业,有了成果后才好意思要经费。莱布尼茨详尽说明了“二进制”算术原理,而且还给出了加、减、乘、除四则运算的规则。
1701年,莱布尼茨心血来潮想巴结下东方的帝王,给自己找条后路,毕竟那时候的西方世界被牛顿给统治了。他听说康熙皇帝喜欢数学,就给在北京的法国传教士白晋的信中,阐述了“二进制”的算术规则,并希望白晋将“二进制”介绍给康熙皇帝。收到信的白晋感觉莱布尼茨的“二进制”似乎与中国的八卦图形有某种联系,比如八卦中的阴爻“——”就像“二进制”中的“0”,阳爻“——”就像“1”。于是他在回信中说明了自己的这个想法,并且把一幅“伏羲六十四卦方位图”一并寄回。这才是《周易》和二进制相遇的原因,传教士真是个好东西。
莱布尼茨见到那张六十四卦图已是1703年,收到东方帝王关照的莱布尼茨兴奋不已,很快就在法国科学院院报上发表了自己那篇关于“二进制”的文章,题目就叫《关于只用两个记号0和1的二进制算术的解释——和对它的用途以及它所给出的中国古代伏羲图的意义的评注》。
中国的八卦符号分为连续的与间断的横线两种。这两个后来被称为“阴”、“阳”的符号,在莱布尼茨眼中,就是他的二进制的中国翻版。莱布尼茨完全是以个人的杰出才华,依靠一己之力推演出二进制。
结二进制是最完美的逻辑语言
2018年,在德国图灵的郭塔王宫图书馆里,仍然保存着一份珍贵手稿,其标题为:“1与0,一切数字的神奇渊源。这是造物美妙的典范,因为,一切无非都来自上帝。”这是天才莱布尼茨的手迹。
二进制最适合逻辑运算,它只有两个数码,正好与逻辑代数中的“真”和“假”相吻合。二进制两个数码正好与逻辑命题中的“真(True)”、“假(False)”或称为”是(Yes)”、“否(No)”相对应。
200多年前,没有谁明白二进制的伟大,唯有莱布尼茨一眼就洞穿数理逻辑的终极奥义,当现在回溯AI的起源时,有些人将莱布尼茨视为真正的鼻祖。
如果看到今天二进制在人类文明中所占据的位置,莱布尼茨可以对着遥远的东方重复他曾经说过的话:二进制乃是具有世界普遍性的、最完美的逻辑语言。
嗨、骚年、快来消灭0回复。