《编码—隐匿在计算机软硬件背后的语言》- [美]Charles·Petzold

这本书讲述计算机如何工作

现代计算机的内部结构不断推陈出新,但其本质上仍然是一些常见且简捷的操作集合

1.至亲密友

熟悉编码的本质对于深入理解计算机软硬件内部结构以及隐匿在其后的语言将大有裨益

莫尔斯编码的一个缺点是,它没有区分大写字母和小写字母

2.编码与组合

莫尔斯码也被称作二进制码

6.电报机与继电器

电报机原理:在线路的一端闭合或断开开关,可以使线路的另一端的电磁铁有所动作

电磁铁是电报机的基础

电报机的发明标志着现代通信的开始

11.门

继电器是通过放大微弱信号来生成强信号的,继电器可以作为一个电流控制而非人工控制的开关

缓冲器还可以用于延迟一个信号

摩根定律

13.如何实现减法

二进制数可以有两种不同的使用方法。二进制数可以是有符号的,也可以是无符号的。无符号的8位二进制数所表示的范围是0255。有符号的8位二进制表示的范围是-128127

14.反馈与触发器

反向器在本质上就是一个继电器,而继电器将状态取反以得到另一个状态是需要一点点时间的

振荡器又被称为时钟

振荡器可以再不需要人干涉的情况下,完全自发地工作

为了使不同组件同步工作,所有计算机都配备着某种振荡器

触发器电路可以保持信息,可以“记住”某些信息

一个能计数的电路必定需要触发器

RS触发器最突出的特点在于,它可以记住哪个输入端的最终状态为1

RS触发器电路存在两个输入:

  • 数据端,取值为0或1

  • 保持位:使当前的状态被“记住”

    通常情况下保持位被设置为0,在这种情况下数据端对电路不产生影响。当保持位置1时,数据端的值就会在电路系统中被“记住”。随后保持位又置为0,这时电路已经“记住”了数据端的最后一次输入,而之后数据端的输入无论如何变化都不会对电路产生影响

​ 值得注意的是,保持位为0意味着输出将不再变化(不再被数据端所影响)

​ 只要保持位为0,则置位端对于输出结果不会有任何影响

19.两种典型的微处理器

栈(后进先出存储器)

image-20210401111518569

计算机中的栈保存的是数据而不是工作

数据存入栈的过程称作压入(push)取出数据的过程称作弹出(pop)

栈是一段普通的RAM存储空间,只是这段空间相对独立不另作他用。8080微处理器设置了一个专门的16位寄存器对这段存储空间寻址,这个特殊的寄存器称为栈指针(SP,Stack Pointer)

21.总线

RAM:随机访问存储器也是计算机不可或缺的部件,它存放着处理器要执行的机器代码指令

总线就是数字信号的集合,而这些信号被提供给计算机上的每块电路板

22.操作系统

操作系统提供了一种访问操作称为API(Application Programming Interface):应用程序接口

可以让程序能够方便地访问计算机的硬件

24.高级语言与低级语言

理查德·费曼曾这样写道:“从某种程度上看计算机科学像是一种工程,它的工作范畴是利用一些事物去实现其他事物”

程序设计的更多的时候是设计和建造

C语言的另一重要特征是对于指针的支持,指针本质是数字化描述的内存地址

25.图形化革命

软件之所以被设计出来,其最终目的是——扩展人类的智慧

MS-DOS:微软磁盘操作系统

在面向对象的程序设计中,对象实际上是代码和数据的组合。在对象内部,与其相关联的代码决定了数据存在的意义,要理解数据的存储方式首先需要理解代码

CCD(Charge-coupled device):电荷耦合器,它是一种在光照下会起电的半导体器件,每个像素都需要一个CCD单元来进行采样

GIF(Graphics Interchange Format):图形交换格式

PNG(portable network graphics):便携式网络图像格式

JPEG(Joint Photography Experts Group):联合图像专家组,它涵盖了几种压缩技术,其中一些是无损的,另一些是有损的

模拟声音被复制的时候难免会有些失真,而对于用数字形式表示的数字化声音而言,都可以实现无失真的转录或复制

Internet从本质上来讲是一组协议的集合,这些协议是计算机之间相互通信的保证。众多协议中,最重要的当属TCP/IP协议,它包括了传输控制协议(Transmission Control Protocol)和网际协议(Internet Protocol)

万维网(World Wide Web)采用了HTTP协议来支持其工作,HTTP(Hypertext Transfer Protocol):超文本传输协议

web首先读取HTML文件,根据读取到的内容现实文本和图形并编排它们的格式

当我们浏览某些Web页面并进行一些操作时,有一些特殊程序需要并发执行,程序中的代码可以运行在服务器端(Server,用来存储原始Web页面的计算机)或客户端(Client),我们自己的计算机就是客户端。服务器端责任重大,通常要完成一些重要的处理工作(例如解释客户端填写的在线表格),服务器端的工作可以通过公共网关接口(Common Gateway Interface,CGI)脚本来处理。而对于客户端,HTML文件可以包含简单的程序设计语言,例如著名的JavaScript。Web浏览器可以对JavaScript语句进行解释,就像解释HTML文本一样

Java语言需要经过编译,编译的结果是Java字节码。Java字节码与机器码在结构上很相似,但Java字节码可以在一种虚拟的计算机下被解释,即JVM。被编译的Java程序产生Java字节码,之后计算机模拟JVM对其进行解释。Java程序的运行可以不受限于机器于图形操作系统的类型,所以它具有平台无关性

posted @ 2021-02-18 00:45  ztw1002  阅读(974)  评论(0)    收藏  举报