小土刀

【计算机系统导论】第二章 比特之美 零与一

纵观各个科学分支的发展,就会发现每个学科对于其研究领域的『基本单位』的追求从未停止,甚至可以说,越了解底层细节,越能做出不一样的研究。


纵观各个科学分支的发展,就会发现每个学科对于其研究领域的『基本单位』的追求从未停止,甚至可以说,越了解底层细节,越能做出不一样的研究。物理中对于基本粒子的追求从未停止,从原子到质子电子,再到苦苦追寻的『上帝粒子』,大型对撞机便是人们求索的手段。化学中对于填满元素周期表的追求从未停止,氢氦锂铍硼,碳氮氧氟氖,居里夫人的故事仍旧为人津津乐道。数学中对于简洁统一的表达式的追求从未停止,从牛顿三定律到相对论,质能方程之美令人印象深刻。

计算机科学,作为一门与传统理科不同的学科,本质是建立在信息上的。而信息说起来则有些看得见摸不着,直到香农提出信息熵的概念才有所转机。对于计算机而言,其物理逻辑决定了二进制表示,于是比特就成为了『基本单位』。

有意思的是,早在信息论提出之前,人们已经利用自己的经验摸索出了表示信息的不同方法,也就是编码。从摩尔斯电码到布莱叶盲文,编码实际上可以看作是信息被各种模板塑造成的各种形状。比特之上,计算机中的信息又是什么形状?这就是本章我们着力要探讨的话题。

计算机起源于欧洲,繁荣于美国,通用的语言自然而然是英语,但是倘若想在中国发展,绕不开的问题就是中文的显示。从最初的汉卡,到现在各类中文编码,这里面的故事和技术细节也值得大家去了解。而最近特别火的 emoji,其实也是一种编码方式,本章也会介绍其来龙去脉。

随着计算机的不断发展,在各个领域的应用也越来越广泛,自然也对以比特为基础的计算机信息表示方法提出了更高的要求,于是人们慢慢发展出了各种数据类型,比方说整型对应于整数,浮点数对应于小数。值得注意的是,由于计算机本身的限制,在浮点数的表示上,竟然是不精确的,很多时候表示的只是一个大概的值,了解这个问题的来龙去脉,对于理解计算机中信息的表示很有帮助。

在数据类型的基础上,随着计算机和编程语言的发展,类型系统的概念也逐渐浮出水面。不同语言也许对于数据类型的处理方式不同,但都逃不开类型系统的定义。了解了这个,就会发现不同的编程语言其实万变不离其宗,归根到底是为了解决不同问题而发明的不同的信息表示和处理方法。

正如学完阿拉伯数字就要学习四则运算一样,了解了基本的数据类型和数据系统之后,我们还需要了解这些信息是如何组合起来的,也就是如何计算的。二进制的计算与十进制相比,虽然有些繁琐,但是有一些非常有意思的技巧。而计算机硬件也决定了计算结果可能出现『溢出』的情况,如何处理这些,也是走进计算机学科的必备能力。

总而言之,了解了计算机中信息的表示,加上前一章的历史知识,我们已经热身完毕,可以真正开始探险了。希望通过这一部分内容的学习,大家能够对计算机的血液,也就是在内部流动的信息有更加深刻的认识,了解 0 与 1,更要理解在 0 与 1 之上人们构建出的庞大体系。这个体系是如此精妙和优美,不需要任何多余的修饰,只需要理解其本身便能清晰感受到。

好了,让我们再次回到 1838 年,从摩尔斯电码来开始这一章吧。

捧个钱场?

热评文章