《编码隐藏在计算机软硬件背后的语言》读感

来源:互联网 发布:木马下载软件 编辑:程序博客网 时间:2024/05/16 14:44

  如果把有关JAVA这类的书据比喻成武侠小说中的擒拿手,SHH比喻成降龙十八掌,那么《编码隐藏在计算机软硬件背后的语言》这本书无疑是计算机行业的内功心法,让人能从最简单的信息产生,编码再到逻辑门,再到更复杂的加法器,寄存器,乃至于计算机的产生有了详细的了解,看到这本书时,有一种忍不住的冲动,再床上跳跃了掐里,甚至有种亲手动手组装一台计算机的冲动(当然这太不可能,毕竟用继电器做计算机你得先有几百平米的房间><中国的房价,泪崩中)。

  我们都知道的信息的单位比特,这是个很神奇的东西,单独的0或1都不能描述一个信息,而当他们组合在一起,可以成信息的最小载体。而不论是布莱叶盲文还是摩尔电码,实际上都是对我们的信息以比特的形式进行了编码,而当我们拿到这段编码再根据其规则,进行解码就可以得到相应的信息,这种编码方式有利于信息的传递,不论是黑夜中的灯光,还是旗帜信号,还是电流的高低,波形的大小,都是以一种规则描述着信息。

  计算机是如何组成的,其实是一种原本用于进行电报传输时,增强信号的一种装置,叫做继电器,继电器一点也不神秘,其实就是电生磁,用一个开关使绕有线圈的铁棒带有磁性,来带动另一个开关,单独的一个继电器可能并没有用处,但是当两个继电器以串联方式连接,那么也就是只有当两个开关都打开时,电路才会有电,也就是1 1 为 1,这就是与门,而当串联时成为或门。通过不同的方式还可以组成异或门,或非门,与或门,反相器(其实就是取反,也可以看成一种门),这就是我们计算机最基础的东西,通过他们可以再组成寄存器,译码器,加法器等。作者详细的描述了计算机每一个部分的构成,过去学计算机组成原理时,单片机部分,只记得跟着老师的步骤来按按这个,按按那个,然后就加到一起了,现在知道原来背后都是通过这些来实现的,我就像个买到新玩具的孩子,高兴坏了。

  之后又说明了怎样进一步的实现自动化,就是将指令也保存的存储器中(可以看成现在的内存),把指令保存在某一个地址,我们就可以通过取某个地址来得到指令,然后来执行这这段指令,汇编也就是如此诞生,通过汇编语言我们可以实现乘法和除法,也就是让机器执行多次向加,这是数学算法的范畴了。汇编语言是机器码和语句相对应的语言,其实就是增强了可读性。作者还讲了万千宠爱于一身的C语言是怎样诞生的,让我这个一直以为C语言是哪来写printf什么什么的人哭混在了厕所,它是跟硬件打交道的,而不是只是向屏幕输出字符。

  作者还进一步的向我们展示了ASCII编码,它是一种七位编码,不过用了8位来保存,一个是8比特,可以保存256。以及展示了适应中文Unicode编码,相当于是对ASCII的一种扩展,前7位是相同的,而后面则包含其他的字符,这样就扩展到了2的16次方,足够用来保存汉字,但相对应牺牲了存储空间。

  这本书最后的浮点数,单精度与双精度,单精度为32位,其结构为1 8 23 为什么叫浮点数,因为小数点是浮动的,就好像一个珠子,在数字中浮动,可以浮动255位,也就是正负127,还有个(-1)s*1.f*2e-127这公式就描述了什么是浮点数,至于是什么,看书去吧,就不说了。

  对于图形化革命,就是控制阴极管发射的黑白像素,每个像素也就是1bit,而对于灰度不同的,可以用更多的比特代表一个像素,而现在的电视则用2个字节表示一个像素,也就是2的16次方,这包含了人类所能看到所有颜色,所以计算机图形化其实需要是硬件的支持,最主要的是内存空间的增大和廉价化。

  洋洋洒洒,随想随写了这么多,其实我想说,读上几遍这本书不会让我们能真的做出一台电脑,甚至都不能组装出一台RAM存储器,也不会让我们因此学会了汇编或高深的算法,这本书最大的帮助就是让人不在畏惧计算机和程序。当我在一行JAVA或C#程序时,我会不由到想到层层的编译,这最终还是用比特在描述的信息,是电路间流动的高低电流,这其实就是最大的收获,胜过解决一个BUG,学会一个算法,实现一个功能。这也就是这本书能成为经典的原因。(不管是大学刚入学,还是对计算机感兴趣,或者工作了都该读读这本书)

  

1 0
原创粉丝点击