125.计算机成精了?

    对于赵文来疯起来只会说二进制的计算机语言,赵德彬和王江平是是震惊的。

    “嘶——”

    两人齐齐倒吸一口冷气。

    恐怖如斯!

    真是恐怖如斯!

    这里必须要向读者老爷们解释一下二进制语言、汇编语言和高级语言之间的关系。

    二进制语言是计算机能直接运行的语言,属于低级语言,就是一连串的0和1,人类很难从连篇累牍的0和1中获取信息。

    举个例子:

    假设这里有“010110100101011101001100”,二十四个连空格都没有的0和1,正常人打眼一看,只能看到满眼的0和1,还能从里面看出其他什么东西?

    而计算机就不一样了,它能看懂这一长串的0和1,识别出这串信息表达的是“l”的意思;

    再假设这里有一个牛逼的程序员,能把阿斯克码对照表背的滚瓜烂熟,知道01011010对应的是z,01010111是w,01001100是l。

    可是,当他看到上面二十四个0和1的时候,是不是他还得反应一会,先把这二十四个数分成三组,一组八个,才能看出来这一串是“l”的意思?

    这才仅仅是二十四个0和1,表达的是“l”三个字母的意思。

    试想,一个程序如果有几十万、上百万的0和1挤在一起,任谁看了,不也得懵圈?

    除了阅读性差以外,容易出错也是另一座无法翻越的大山。

    人在输入0和1的时候,是不是很容易出错?

    那简直不要太容易。

    只要眼睛花一下、手摁得慢一下,一个0或1出错,程序就会出问题。

    同样地,想从这一堆0和1中找错,也是一件非常困难的事情,就像上面那一串只有区区二十四个0和1,但却可以看得让人感觉眼花缭乱。

    况且,人的脑子很难把二进制的阿斯克码背下来,因为这东西太反人类了,根本就没有什么规律。

    比如:

    “01111111”是“delete删除”,

    要是打错了最后的1,那么“01111110”就是“波浪号~”的意思;

    打错中间第五个1,就会变成代表着“小写w”的“01110111”。

    人的脑子很难准确地记住那一串串的0和1,需要不停地翻对照表,不仅特别容易出错,有了错误还不好排查。

    后来,上古程序员们是被冗长的0和1折磨得不轻,觉得这东西实在是太不方便了,难且不说,效率还低。

    于是,他们就在二进制语言的基础上,倒腾出来了汇编语言。

    汇编语言是面向机器的低级语言,不能被机器直接识别,需要编译。

    这个虽然也比较难,但已经比二进制语言强多了,最起码人的脑子是可以记住的。

    据说,国家在航空航天和武器方面的编程,用的都是汇编语言。

    因为汇编语言仍是面向机器的语言,外人很难从其代码上理解程序设计意图,设计出来的程序不易被移植,安全性比较高。

    然而,汇编语言对广大凡人们来说,还是有些复杂、困难,尤其是在进行数据处理或是逻辑运算时,更是令人头秃。

    所以,有一批特别聪明、特别有才的程序员,寻思着:不行啊,就算用汇编语言编程,还是有很多人不会,这怎么办捏?

    于是,这批聪明人,又设计出了高级语言。

    c语言就是高级语言,到这里,编程语言对人类已经非常友好了,就跟大家平常说话交流是一样的。

    程序员的门槛总算是被极大地拉低了,连小学生都可以学编程。

    用c语言写的程序,阅读性很好,泛用性也很高。

    张三写出来的程序,李四就算水平差点,也能看懂。

    就算李四看不懂,李四也可以祭出程序员的杀手锏、编程的终极武器、所有代码的万能钥匙——上网查。

    只不过,高级语言是从人类的逻辑思维角度出发的计算机语言,不能被机器直接识别,需要最终编译成0和1让计算机识别。

    但打个比方,假如汇编语言只需要编译一次就能成为二进制语言,c语言就得进行多次编译,转成十六进制、二进制,计算机才能懂。

    高级语言方便是方便,但需要多次编译。

    在编译过程当中,可能出现问题,比如有些东西转译后机器识别不了,或者有些信息译着译着就给译丢了。

    所谓的“debg”,就是找出编译不通过、计算机无法识别的信息。

    甚至在有些情况下,用高级语言写程序写的好好的,怎么看都没有错误,实际上也没有错误,但转译成二进制之后,机器就是识别不出来。

    综上所述,会二进制语言并不稀奇。

    远古时代的程序员,拿线圈、磁珠,在打孔卡上怼程序,用的就是二进制语言。

    很多上古时代用汇编语言编程序的程序员,就懂一些二进制,就比如王江平。

    为什么王江平的杀毒软件在全国首屈一指,别的杀毒软件都打不过他?

    就是因为他搞的是底层的东西,从底层的一串串“010010101……”找病毒的代码,将病毒从根上抹除。

    任何的病毒,转换到计算机上都是0和1的代码,所以赵德彬和王江平弄了个广谱特征码查杀病毒,本质上就是通过二进制找病毒。

    王江平是初中学历,学问不高,编程都是自学的,没人教他,一接触编程就是学的汇编语言。

    其他开发杀毒软件的人读书太多,编程入门是c语言,他们基本上也不会费劲巴拉地去研究汇编语言。

    c多好用,多简单啊!

    王江平的汇编语言水平就很厉害,对二进制语言也有所研究。

    但是,正常人的“会”二进制语言,跟赵文来的“会”二进制语言,不是同一个“会”。

    本质上,赵文来的脑子已经不是人类的脑子,而是一个计算机的脑子。

    正常人就算再怎么熟悉二进制语言,面对一长串的0和1,他也要像王江平和赵德彬一样,先把那些0和1分成八个一组,然后一组组地从脑子中找出来对应的信息。

    赵文来就不一样了,他走的不是人类的路子,他跟计算机一样,看到一大串0和1,就直接能从这一长串数字中提取信息,一点也没有阅读障碍。

    望着不停地在纸上写数学公式的赵文来,王江平两眼发直,喃喃问道:“他这……怕不是计算机成精了?”

    旁边的赵德彬,也是如出一辙的两眼发直,他愣愣地回答道:“我觉得……可能真是……”

    ·

    注释1:

    建国后不许成精。

    注释2:

    按理说今天应该两更,第二更我已经写好了,但由于今晚0点本书总算等到了第一波推荐,我就把第二更扣下了,零点再发。

    本书在29万字收到第一轮推荐,虽然数据不好看,也不知道上了试水推能不能pk得过其他书,但这本书老夫写得颇为满意,想表达的东西也表达到位了,能得到读者朋友的肯定,我很高兴。

    就算试水推失败没有其他后续推荐,老夫写这本书的初心还是不会改变的。