HelloWorld 《编码》读书笔记

这篇博客是《编码:隐匿在计算机硬件背后的语言》的读书笔记,深入探讨了从编码、解码、电路原理到数字系统、逻辑运算、存储器构建以及操作系统等内容。文章通过分析各种编码方式,如摩斯码、盲文,展示了信息处理的逻辑和数学基础,同时讲解了二进制系统、逻辑门、触发器、存储器阵列和总线接口在计算机硬件中的作用。最后,讨论了操作系统在硬件和软件之间的桥梁作用以及定点数和浮点数的表示方式。
摘要由CSDN通过智能技术生成

编码:隐匿在计算机硬件背后的语言 笔记

第一章:编码

  信息是交流的基础,而编码是保证交流的手段,在不同的条件下,我们需要不同的编码方式。如对一个健康的人类而言,自然语言就是一种编码,但是对于聋哑人而言,盲文才是适合他们的编码方式。相应的,计算
机没有人的眼耳口鼻,所以我们需要创造一种适合与计算机交流的编码。

  编码的组合让编码能够承载更多的信息。如手电筒的明暗两种状态是基本的编码,通过定义编码的明暗搭配,以及编码的信息长度,对规范化的编码后,可以拓展编码的信息。

  手电筒的明暗组合定义可以根据实际需要而被赋予。例如可以将手电筒的明暗组合对应与字母表中的字母,然后将常用的字母赋予,分配给简短的明暗组合形式。而这里所谓的定义实质上是对应关系,也就是数学当中的函数。除了单纯的字母分配,我们还可以将常用的词语或者句子赋予,分配给这种明暗组合,形成对应关系。

  回过头,我们可以对编码下个定义,编码实质上是对应关系,也就是函数。这就是本章最重要的内容。


第二章:解码

  如果说编码是一种函数的话,那么毫无疑问,解码就是求反函数的过程。求解反函数的过程中我们需要明白,其自变量以及因变量发生了交换。以摩斯密码为例,在编码的时候,选取的自变量是字母,对应的因变量是点和划,而解码的时候如果我们仍旧选择字母为自变量解码效率会低下,我们应该将点和划选为自变量。编码有对应的组合过程,相应的解码存在一个分解过程。而其中如何分解更多的是数学组合学以及概率论上的内容。
  
  以摩斯码为例分析一下解码中的技巧:
首先摩斯码是二进制码(Binary Code),也就是这种码的组成元素是两种:点和划。而我们通过点和划的组合以及数量(长度),来表示事物。因此解码,也就是对编码的组合进行分解的时候,我们需要分解两个元素,类型以及长度。而元素只有两个,长度最长的有四位,所以我们可以用二叉树的方式解码。这样的二叉树有四级。
  
  在这里可以做一个引申:这样的解码方式可以应用在图书馆管理系统当中的对应翻译表的建立。
编码时我们将书放入对应的位置,并编号。而当我们解码时我们需要根据对应书的编号解码出图书位置。
如,我们不能这样解码:

  • 位置 书编号

而应该这样:

  • 书编号 位置

第三章:一种更进一步的编码

  盲文比莫尔斯编码更加抽象,而同时却更高效,更像自然语言。与莫尔斯相比,更抽象的地方在于盲文直接省略了划,而只有点的两态划分。同时增加了编码的存储内容,而且引入了语境要素。这种语境要素通过标识符来区别不同语境。标识符有两种表现形式,一种是分配编码,表示语境转换,另一种是通过编码间隔长度来转换。实质上就是以编码的类型以及长度来标识当前语境。
  
  而这种标识符下的编码,我们可以理解为作用域,这在以后的学习中很重要,而从这里我们也了解到,作用域可以对应与语境。要注意,我们标识了语境的进入,也要考虑到实际情况标识语境的退出。
  
  其中还介绍了逃逸码和换挡码,我认为区别在于逃逸码的作用域比换挡码要小。
  


第四章-第六章:电路基本原理与电路链接方式

  本章主要讲述了电路的基本原理,即电流的运转方式。其中重点内容为电路的两种基本链接方式,即串联和并联。这在以后的学习中会经常遇到。另一点是本章是中转章,一方面介绍编码,而介绍电路是因为经过编码的信息可以经由电路传递。
  
  重点:
  
  继电器:继电器是一种信息中转器材,能识别接收的信息,并根据需求将信息进一步传递出去。实质上大部分继电器不会对接收的信息做处理。他们本质上是一个电流控制的开关。


第七章-第九章:数字系统(从十进制到二进制的进一步抽象)

  在第七章中主要介绍的是阿拉伯数字系统的特点。这种数字系统有三个明显的特点:1、利用了位置信息编码;2、发明了进制系统;3、基于1和2的特点,使得这种数字系统能够方便计算,如0可以使得四则运算更加简便。我们称这种的数字系统为:进制系统。
  
  在第八章中可以看到,我们可以进一步优化具有阿拉伯数字系统特征的数字系统。在本章中,主要以十进制为对比对象,引入了八进制,四进制,二进制数字系统基本情况,并分别介绍十进制与它们之间的转化方式以及这些数字系统的四则运算方式。
  
  第九章是重点章节,在本章中引入了比特的概念,说明了比特的重要性以及相应的缺点。之后介绍基于二进制数编码的比特的应用。这多种应用中我们注意到两个关键的技巧:1、通过冗余编码消除噪声带来的影响;2、通过补码编码来修正,提高解码效率;以下是详细的内容:
  
  信息:是多种可能性的一种。
  
  比特:比特代表二进制数字位,同时也是基本信息单位。也就是对信息基本的选择。

  在计算机中比特意为一个信息块的基本单元,也就是基本的信息单元。正是因为比特是一种基本的信息单元,所以我们可以利用比特来表述信息。其推理过程如下:比特表示的是二进制数字位,而二进制是最简单同时也是最抽象的数字系统,数字系统本身就是一种编码,所以也就是说比特是一种基本的编码单元。

  但是这里要注意一个问题,比特表示的一种基本选择,是确定的命题,是非此即彼的选择,也就是说我们不能利用比特来表示[一个是彼又是此,在当前不具备可降解复杂度“不确定”的信息]即不能表示不指明确定选择的可能性。尽管如此,比特还是可以有许多应用:我们可以通过增加冗余位编码信息来消除噪声对于信息的影响,例如重复编码以及利用补码的特性提高解码效率,规避噪声。


第十章 编码的赋值和运算(逻辑推理)

  本章是重点的章节,主要的内容是讲述编码信息的处理方式,并且我们可以将这种处理方式运用在电路上。我们可以通过逻辑对编码进行判断(赋值)和解码(运算),从而在多种可能性中选择得到符合要求的选择。
  
  逻辑是一种方法,一种过程分析方法。其表现形式是由抽象到具体,映射到集合运算中就是在集合中找到具体的类。这里就说明逻辑有两个作用:具体化和找到符合需求的类。进一步抽象就是运算和赋值。所谓的运算就是抽象到具体的过程,而赋值就是判断的过程。通常我们需要先赋值后运算。
  
  一个简单的逻辑如下图:一个比较简单的三段论。
这里写图片描述
  从中可以推出结论为:苏格拉底必然会死。
  而:有些逻辑并不那么显然:
  

  • 1.所有哲人都是符合逻辑的;

  • 2.一个没有逻辑的人总是非常顽固;

      当中有几个类型我们需要抽取出来:1.符合逻辑与不符合逻辑,2.人与非人,3顽固与顽固,4.哲人与非哲人。而这其中类与类间存在关联。上图是简单的继承关系。这个逻辑的结论并不显而易见:
      现在回过头来考虑,我们为什么需要逻辑,为什么需要对信息进行赋值和运算?
    我们将逻辑理解成赋值和运算,那么显而易见的是编码就是一种声明。而逻辑并不是处理单条编码的。而是在至少两条以上的编码信息中做出约束,对信息做出集成与表达,从而得到具体的选择。


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值