《编码》读书笔记
前言:这是一篇个人读书笔记,发出来想看是否有朋友读过,可以相互学习交流以下,如有谬误,恳请指出。
第一章 致密亲友
主要讲了摩斯电码,以后对摩斯电码想要深入了解可以看看,按照思路尝试做个莫斯发收器出来
有两点比较重要:
1、对于编码的定义:指一种用来在机器和人之间传递信息的方式
2、最后一句话,数字2,两种不同的事物经过适当的组合,就可以表示所有类型的信息。对应计算机里面0/1。
第二章 编码与组合
引出了“二进制码”,从对莫斯码的解码出发,展示了可能的译码结果,一个码,对应2个字母,两个,4,三个,8......即2的幂,这就是二进制码的统一表达形式,二的幂次方。
重点:二元对象(硬币)和二进制码(莫斯码)常用2的乘方进行描述
第三章 布莱叶盲文与二进制码
路易斯·布莱叶,布莱叶盲文,也是一种二进制码,很牛逼,15岁,不过43岁英年早逝。
重点:优先码/换挡码(precedence codes / shift codes)改变作用域内的编码含义;
逃逸码(escape codes)从一种编码解析转变为另一种编码解析(例如大小写)
第四章 手电筒的剖析
将了一章的物理化学电的相关知识,最后指出最重要的其实是——开关!只有两种状态,指出二进制码与电器电路之间的相似性。
第五章 绕过拐角的通信
从电灯泡组成的摩斯密码收发系统引出了近代电报系统,可以支持更远距离,基于此整个计算机系统才被构建出来。
第六章 电报机与继电器
从发报系统引出了继电器,一个完全没有人力的依靠电流操作的机器。
第七章 我们的十个数字
十进制的介绍
第八章 十的替代品
10 -> 8 -> 4 -> 2!主角现身
第九章 二进制数
讲述了二进制码0/1在现实世界中的运用,着重分析了生活中处处可见的二进制码,对其有了深刻的剖析,最后还介绍了摩斯码和盲文对应使用二进制码的方法和实例。
第十章 逻辑与开关
着重介绍了布尔以及布尔代数,,将其应用到电路中,即为电路的开关,但是布尔代数被研究出来时没有电灯泡,因此无法在当时实践,对于发报机,则更容易实现,对现代计算机的启示作用极为重大。
第十一章 门
本章绍的内容十分丰富,从第六章的介绍继电器来实现自动控制电路开关闭合,进一步讨论到四种基本的门也就是与门(AND)、或门(OR)、与非门(NAND)、或非门(NOR),后两者与前两者的结果对应相反还有另外两种不是逻辑门的继电器连接方式:反向器(类似非门)、缓冲器(符号为二极管符号,作用有两点:增强微弱信号,延迟信号发送)。门一般有两个及以上的输入,因此本章介绍的另外两个反向器和缓冲器不是门。对于各对应符号的理解和性质也十分有趣和重要,这六个都由继电器主要构成,书中的例子给出了一种形如“2-4译码器”的门电路,而现实中还有更多的“2-2^n译码器”即输入为2,通过各种组合输出n个信号,任何时刻只能有一个为1。最后,作者还指出了非本书的重点的内容:利用摩根定律可花间符号表示的电路。
注意:对反相器的理解,不能等同于非门,反相指的是可以将波形反相,而非门只有0和1两种状态,而一个波形不止有0和1两种状态。但它们在数字电路的功能是一样的,因为数字电路只有0和1两种状态。
第十二章 二进制加法器
首先介绍一种新的门电路:异或门(XOR),它由或门、与非门、与门三个基础的门组成,当且仅当两个输入不相等时输出结果为1。
异或门和与门组成了半加器,因为半加器输入两个数字一次只能计算一位数然后输出加和输出和进位输出;
全加器则直观上看需要在两个数字输入的基础上增加进位输入,其内部组成其实实际上为两个半加器和一个与门组成的,共有三个输入:进位输入、两个数字输入;两个输出:加和输出、进位输出。
加法器另一个重要的部分就是灯泡与开关的连接。
上述加法器需要144个继电器组成,其计算方法为
144=8(全加器) * ( 2(与门) + 2(半加器) * (4(一共四个基础门) * 2(每个门)) )
上述方法实现的加法器采取的思想是行波进位,而现代使用的是更快的前置进位。在该述方法中使用晶体管代替继电器同样也需要144个晶体管,但是可以更小更快成本更低,使用前置进位则需要更多。
第十三章 如何实现减法
先看如何再不借位的情况下实现十进制的减法:253 - 176 = 253 - 176 + 1000 - 1000 = ( 999 - 176 )+ 1 +253 - 1000
同理对于八二进制减法,先求减数对于全1的补码,再加被减数,再加1,再减去100000000,得到结果的绝对值,也就是一个无符号的二进制数。若被减数小于减数,在结果前添加‘1’表示结果为负。
注意溢出的情况:-128~127, 即10000000~01111111
第十四章 反馈与触发器
此部分难度较大,初次略读,主要讲解了触发器的工作原理和组成结构,进一步深入研究了继电器构成的门电路的对于触发器的组合方式。
第十五章 字节与十六进制
介绍了字节、16进制
比较重要的是16字节的加法,如何做加减法。
第十六章 存储器组织
本章主要讲述了存储器,输出端的构造是一个选择器,数据选择器选择存储器进行输出时所用的端口,输入端则是一个译码器,与前者的功能正好相反。译码器和选择器具有相同的信号,存储器中A0,A1,A2为三个地址端口。
最简单的随机访问存储器RAM为两个基础的8位存储器构成,RAM阵列的存储容量 = 2^地址输入端的个数
65536 = 2^16,即大小为64KB的RAM阵列,需要配备16位的寻址端,如果再设置一个控制面板来实现数据的读写和存储其需要25个2-1选择器——16个地址输入端、8个数据输入端,以及1个写操作端。64KB×8的RAM阵列和控制面板的组合,功能为存储65536个8位数并读取其中任意一个。
随机访问存储器也成为易失性(volatile)存储器,因为如果没有恒定的电流,它将不会永久性的存储数据。
第十七章 自动操作
讲述的是机器语言和汇编语言,着重介绍了汇编语言的一些基本,这章讲述的内容以我现阶段的能力只能够允许略读,对于一些细节的深奥的部分如果真的要细细研究将会会费大量时间,将来可以在系统的学习了汇编语言后回来再次研读。
第十八章 从算盘到芯片
如题,讲述的是一段令人印象深刻的激动人心的影响深远的历史进程。
第十九章 两种典型的微处理器
第二十章 ASCII码和字符转换
第二十一章 总线
连续的三章都涉及到基础而又重要的汇编知识,从这些知识当中我们可以看到一台计算机的最终组成需要什么样的基础来构建起来,这三章所讲述的内容是帮助我们理解下一章以及理解计算机的基础。
第二十二章 操作系统
OS: Option System
这一章最需要关注的就是我们所熟知的软件,软件是我们实现使用利用计算机相关程序的功能的重要手段,对于开发者或者用户来说,编写相应的代码或者使用一些方法可以让计算机做什么,采取什么动作,作出什么反应,得到什么结果。这一系列的奥秘都藏在操作系统中,本章就介绍了这一系列步骤的具体实现过程,详细又生动。
第二十三章 定点数和浮点数
汇编语言中最重要的数学知识部分之一,现代技术将浮点运算硬件存在于计算机中使得汇编程序的编写变得更加高效。
第二十四章 高级语言与低级语言
区分高级语言和低级语言:汇编语言是低级语言,因为它与计算机硬件相关,其余的编程语言均可以称为高级语言。其次,在除去了汇编语言的编程语言中,不同语言之间也有不同的高低级之分。
对于一种语言,我们应当从两个方面去考虑,一、定义之并规范之(语法,syntax);二、编译器(compiler)的编写。
优劣对比:对于高级语言,易于编写是显著特点,编译器可以很好的将程序代码转换成对应的机器码以便在不同的处理器上运行,程序员不需要关心运行程序的计算机的底层结构。但是,高级语言的占用内存和运行速度不及机器语言,这一点随着微处理器的发展和编译器对代码的优化过程中有所改善。
第二十五章 图形化革命
交互式的概念是推进图形化革命的关键。
讲术了mac和win的相关知识,以及发展过程解决的问题,如API的内容,参入了上一张讲的高级语言,如C,C++,还牵扯了一部分硬件知识,如阴极管,还有部分计算机网络的知识,,如信道,信号,调制解调器等等。
这是我第一次都这本书,而以后肯定会读第二遍第三遍,对于本书后半部分其实读的比较浅薄,没有进行深入系统的学习,相信未来再读肯定会把书的后半部分作为重点,进行深入而全面的探究。
本书读完后可以说是开启了硬件和汇编的门,根据我在网上的了解,结合我自己的专业考虑,我接下来的方向会在C和算法上,这个寒假会进行计算机网络的系统学习,因为这学期学的计网感觉最后只是应付了一下考试,只有框架而没有深入,《自顶向下方法》是一本好书,我将会结合哔站上面有关的教学视频学习,有可能的话还会通过录制视频的方式进行知识输出以检测自己的学习情况,当然书记的学习笔记整理肯定会保存并发贴的。