【书摘】编码:隐匿在计算机软硬件背后的语言

这是计算机相关非常优秀的一本入门书籍,内容比较浅显易懂。


尽管摩尔斯电码与计算机毫不相关,但熟悉它的本质却对深入了解计算机内部语言和硬件的内部结构有很大的帮助。

在本书中,编码或代码(code)通常指一种在人和机器之间进行信息转换的系统(体系)。换句话说,编码便是交流。有时我们将编码看成是密码,其实大多数编码并不是的。大多数的编码都需要被很好地理解,因为它们是人类交流的基础。

人们在相互沟通时使用了各种不同的编码,因为在不同的应用场合,其中的一些较其他的更为简便。例如,语言不能在纸上存储,所以使用了文字;语言、文字不适合用来在黑夜中安静地传递消息,故摩尔斯电码是一个方便的替代品。只要一种编码可以适用于其他编码所不能适用的场合,它就是一种有用的编码。

实际上任何两种不同的东西经过一定的组合都可以代表任何种类的信息

摩尔斯电码被称为二元码(binary code),因为编码中仅含『滴』和『嗒』。这与一个硬币很相似,硬币着地时只可能是正面或反面。二元事物(例如硬币)、二元编码(例如摩尔斯电码)常常用 2 的乘方来表示。

继电器是一种卓越的设备。它是一个开关,但并不是由人工而是借助于电流进行开关操作的。利用这种设备可以做出令人惊奇的事情。事实上,你可以用继电器装配出一台计算机中的大部分部件。是的,继电器这种设备是一种很好的发明,足以与电报相提并论。后面还将会用到,且它会变得非常小巧、方便。但是,在能够使用它之前,得先学会数数。

通过将数字系统减少至只有 0 和 1 两个数字的二进制数字系统,我们已经在能够接受的范围内做了深入的讨论。不可能找到比二进制数字系统更简单的数字系统了。二进制数字系统架起了算术与电之间的桥梁。

像开关一样,继电器也可以串联或并联执行逻辑中的简单任务。继电器的组合称为逻辑门。继电器比开关好是因为继电器可以被其他继电器控制而不必用手指控制,这意味着逻辑门可以被组合起来执行更加复杂的任务,比如一些简单的算术操作。

加法是最基本的算术运算。所以,如果想要建造一台计算机,必须首先知道如何构造一种机器,它可以把两个数加起来。当你解决了这个问题,你会发现加法正是计算机唯一所做的事情。

IBM 采用字节的一个原因就是它们易于以 BCD 这种格式保存。

一个奇特的发明对计算的历史产生了深远的影响,就像它对纺织所产生的深远影响一样, 这就是约瑟夫·玛丽·杰奎德(1752-1834)所发明的自动织布机。杰奎德织布机(大约产生于1801年)使用上面已打孔的金属卡片(就像钢琴上的金属卡片)来控制编织物的图案。杰奎德的一大杰作就是用黑白丝线织成的自画像,为此使用了大约 1万张卡片。 在 18 世纪(甚至直到 20 世纪 40 年代), 计算机就像一个以计算数字谋生的人。使用星星进航海导航经常需要对数表,并且三角函数表也是必需的。如果需要发布新表,则需要许多计算机来工作,然后把结果汇总起来。当然,在这一过程的任何阶段,即从初始化计算到设置类型来打印最后几页都可能会出现错误。 从数学表中消除错误的愿望激发了查尔斯·巴贝奇(1791—1871)。巴贝奇是一位英国的数学家和济学家,他和摩尔斯差不多是同一时代的人。


非常重要的章节(可以用作参考)

  • 第 18 章 从算盘到芯片
  • 第 19 章 两种典型的微处理器
  • 第 20 章 ASCII 码和字符映射
  • 第 21 章 总线连接
  • 第 22 章 操作系统
  • 第 23 章 定点数和浮点数
  • 第 25 章 图形化革命