《Code隐匿在计算机软硬体背后的语言(英文版)》,作者【美】查尔斯·佩措尔德(Charles Petzold) 着,2019年6月电子工业出版社出版。
基本介绍
- 书名Code隐匿在计算机软硬体背后的语言(英文版)
- 作者【美】查尔斯·佩措尔德(Charles Petzold)
- ISBN978-7-121-35803-6
- 页数408
- 定价118
- 出版社电子工业出版社
- 出版时间2019-06
- 装帧平装
- 开本16
内容提要
《Code隐匿在计算机软硬体背后的语言(英文版)》是一本讲述计算机工作原理的书。不过,你千万不要因为“工作原理”之类的字眼就武断地认为它是晦涩而难懂的。作者用丰富的想像和清晰的笔墨将看似烦杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。更重要的是,你会更加深刻地理解计算机的工作原理。这种理解不是抽象层面上的,而是具有一定深度的,这种深度甚至不逊于“电气工程师”和“程式设计师”的理解。
不管你是计算机高手,还是对这个神奇的机器充满敬畏之心的“小白”都不妨翻阅一下本书,读一读大师的经典作品,必然会有收穫。
目录
1 Best Friends / 3
编码是什幺?在本书中,这个词是指一种用来在机器和人之间传递信息的方式。换句话说,编码就是交流。对任何能听见我们的声音并理解我们所说的语言的人来说,我们发出的声音所形成的词语就是一种编码。用手电筒能代替声音来与朋友交谈吗?值得一试。
2 Codes and Combinations / 9
莫尔斯码也被称做二进制码,因为这种编码的组成元素只有两个——“点”和“划”。不过,点、划的组合却可以表示你想要的任意数目的码字。这其中的规律是什幺?
3 Braille and Binary Codes / 15
布莱叶盲文是为了便于盲人阅读而发明的一种编码。在这一章中我们将解析布莱叶盲文,来看看它是如何工作的。我们并不是要真的学习布莱叶盲文,而且也无须刻意记住关于它的什幺内容。我们仅仅希望从中归纳出编码的一些性质。
4 Anatomy of a Flashlight / 22
为了理解电在计算机中的工作原理,我们先得仔细钻研一番电学,不过不要担心,只需要一部分基础知识就够了。在本章,我们将以手电筒为教学道具,引导你走入神秘的电学世界。
5 Seeing Around Corners / 32
在第1章,我们曾经讲过用手电筒与朋友进行交谈的方式,这样的方式是有局限性的,你的交流对象必须住在街对面,而且你们卧室的视窗正好相对。,现实不会总是如此。当手电筒的光无法到达朋友的卧室时,怎样与他进行无声的交流呢?电路或许可以助你一臂之力。
6 Telegraphs and Relays / 40
全球即时通信对于我们来说已经司空见惯,但你要是生活在19世纪早期,可没这幺方便。你可以进行即时通信或者远距离通信,不可能做到这两点。即时通信会受声音传播距离或者视野的限制。使用信件倒是可以进行更远距离的通信,寄信耗费的时间太多,并且需要藉助交通工具。为了解决这个问题,电报应运而生,而伴随着电报诞生的继电器更是具有重要意义的伟大发明。
7 Our Ten Digits / 47
人们很容易理解语言只不过是一种编码。比如英文中的“cat”(猫)在其他语言中可以写做gato、chat、Katze、KOIIIK或kátta。,数字似乎并不会那幺容易随文化的不同而改变。不论我们说什幺语言,或使用什幺样的发音,在这个星球上的所有人都用以下方式来书写数字0,1,2,3,4,5,6,7,8,9。你了解这十个数字吗?
8 Alternatives to Ten / 54
对人类而言,10是一个非常重要的数字。它是我们大多数人拥有的手指或脚趾的数目。我们人类已经适应了以10为基数的数字系统。只能使用十进制来计数吗?如果人类像卡通人物那样每只手只有4根手指会怎样?
9 Bit by Bit by Bit / 69
二进制是最简单的数字系统,其中只包含两个数字0和1。二进制中的1位(bit)称为1比特,我们可以用它来表达简单的信息是或不是,亮或灭,打开或关闭,等等。而事实上只要信息能转换成两种或多种可能性的选择,就都可以用比特来表示。这种例子在日常生活中随处可见,比如照相机胶捲的胶片速度,各种商品包装上的条形码等。
10 Logic and Switches / 86
对于古希腊人而言,逻辑是在追求真理的过程中所使用的一种分析方法,是一种哲学形式。而英国的数学家乔治·布尔却认为可以找到一种数学形式来描述逻辑,他发明了布尔代数。更重要的是,布尔代数运算可以用开关、导线和灯泡组成的电路来实现,布尔代数中的AND和OR,与线路中开关的串联和并联,有着奇妙的对应关係。
11 Gates (Not Bill) / 102
继电器像开关一样,可以串联或并联在电路中执行简单的逻辑任务。这种继电器的组合叫做逻辑门(Logic Gate),也简称门。这里提到的逻辑门执行“简单的”逻辑任务是指逻辑门只完成最基本的功能。本章就介绍那些用以完成最基本逻辑任务的门。
12 A Binary Adding Machine / 131
加法是算术计算中最基础的运算,如果想搭建一台计算机,就要搭建出计算两数之和的器件。本章我们将利用前面章节中用过的开关、灯泡、导线、电池、逻辑门等这些简单的元件,搭建一个二进制加法器。
13 But What About Subtraction? / 143
当你确信继电器连线在一起真的可以实现二进制数加法时,你可能会问“如何实现减法呢?”问得好!这表明你是相当有觉察力的,加法和减法在某些方面互相补充,在机制上二者却存在本质区别。不过没关係,我们可以想一些办法,把减法运算变成加法。
14 Feedback and Flip-Flops / 155
想像一下,如果你没有了记忆力,该如何去数数?我们不记得刚刚数过的数,也就无法确定下一个数是什幺。同理,一个能计数的电路必定需要触发器。本章要介绍的就是各种触发器。
15 Bytes and Hex / 180
在前面的章节中,加法器、锁存器以及数据选择器的输入和输出形式都是8位的数据流,也即数据路径的位宽为8,为什幺要定义为8位呢?为什幺不是6位、7位、9位或10位?本章就要解释其中的缘由。
16 An Assemblage of Memory / 190
每天清晨,我们将自己从沉睡中唤醒,这时大脑的空白会很快被记忆填满。我们立刻会意识到自己身在何方,最近做了些什幺事情,有什幺计画打算。有的事情我们很快就能想起来,但有时并非如此。我们可以藉助许多工具来记录信息,比如笔和纸、磁带,现在还可以使用存储器。
17 Automation / 206
人类的本性中带有一些懒惰的特质。我们总是牴触繁重的工作,对枯燥的、重複性的工作深恶痛绝。所以,当你必须用前面搭建的加法器计算100个数,甚至更多个数的加法时,有一种念头就会不可遏制地从脑子里冒出来怎样让加法器自动完成数据输入和计算呢?办法肯定是有的,那就是编写程式。
18 From Abaci to Chips / 238
算盘、滑尺、纳皮尔骨架、差分机、解析机、继电器、电子管、电晶体、晶片、计算机;甘特、帕斯卡、莱布尼兹、杰奎德、巴贝芝、图灵、冯·诺依曼、香农;IBM、贝尔实验室……你觉得应接不暇了吗?把这些你或熟悉或生疏的名词和名字串起来,就是人类的计算工具发展史。让时光倒流,去看看那些精巧的工具,感受天才们的巧思吧!
19 Two Classic Microprocessors / 260
将中央处理器的所有构成组件封装到一块硅晶片上,就得到了微处理器。第一片微处理器晶片诞生于1971年,即Intel 4004系列,其中集成了2300个电晶体,你或许觉得可笑——如今家用计算机的微处理器上所安置的电晶体数量已经以亿为计量单位了。,从本质上来说,微处理器实际所做的工作并没有变。在本章,我们就来看看两种有着辉煌历史的典型微处理器Intel 8080和Motorola 6800。
20 ASCII and a Cast of Characters / 286
计算机中的存储器唯一可以存储的形式是比特,如果想在计算机上处理信息,就必须把它们转换为比特的形式来存储。我们已经掌握了如何用比特来表示数字和机器码。如何用它来存储文本呢?毕竟,人类所积累的大部分信息,都是以各种文本形式保存的。下面就轮到ASCII码出场了!
21 Get on the Bus / 301
一台计算机包括很多部件中央处理器、存储器、输入/输出设备等。通常这些部件按照功能被分别安装在两个或更多的电路板上。这些电路板之间通过汇流排(Bus)通信。如果对汇流排做一个简单的概括,可以认为汇流排就是数位讯号的集合,而这些信号被提供给计算机上的每块电路板。
22 The Operating System / 320
你或许梦想过自己组装一台近乎完整的计算机,像老木偶匠盖比特雕刻木偶匹诺曹一样,全部亲自动手用小零件完成。不过在你的机器能完成你想要的操作之前,还差一个重要的东西——作业系统!
23 Fixed Point, Floating Point / 335
整数、分数以及百分数等各种类型的数字与我们形影不离,它几乎出现在我们生活的所有角落。例如你加班2.75小时,而公司按正常工作时间的1.5倍支付你工资,你用这些钱买了半盒鸡蛋并交了8.25%的销售税。在计算机的记忆体里,所有的数都表示为二进制形式。通过前面的学习,我们知道2用二进制可以表示为102,可是2.75用二进制怎样表示呢?这就是本章的主题。
24 Languages High and Low / 349
第22章介绍了如何编写一段简单的程式,让我们可以利用键盘将十六进制机器码输入计算机,以及通过视频显示设备来检查这些代码。但使用机器码编写程式就如同用牙籤吃东西,伸出手臂费半天劲刺向食物,但每次都只取到小小的一块,用这种低级语言编写程式既费力又费时,有悖于我们发明计算机的初衷。不过,人们想出了一种效率更高的编程方法——使用高级语言。
25 The Graphical Revolution / 364
回顾历史,从第一台继电器计算器到现在为止,六七十年过去了,计算机的处理速度飞速增长。不过要充分利用计算机日益增长的运算和处理能力,就必须不断改进计算机系统中的用户接口(User Interface),因为它是人机互动的轴心。图形化革命来了!
Acknowledgments / 383
Index / 385