二月书单《编码隐匿在计算机软硬件背后的语言》 1-12章

最近没事干,不能出门,看看课外书。

这本书好像还挺有名的,书也很通俗易懂,读得也很快,也对以前所学的东西有了一些新的认识

第1章 电筒密谈

  通过手电筒提出摩尔斯电码,尽管摩尔斯电码与计算机毫不相关,但熟悉它的本质却对深入了解计算机内部语言和软硬件的内部结构有很大的帮助。英语词汇就是一种编码,可以利用摩尔斯电码进行传递。本章主要是提出了编码这个概念。

第2章 编码与组合

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

第3章 布莱叶盲文与二元编码

  介绍了一个为盲人做出杰出贡献的人-->路易斯·布莱叶,他创建了自己的系统,其原理直到今天还在使用,它为盲人提供了与书写世界联系的途径。布莱叶方法仍是适于既聋又盲的人阅读的唯一方法。介绍了一些盲文字母的编码规则,用6bit的数来对字母进行表示,小格中的6个点全部印刷出来,小格中的点,或是突起或是光滑。现在在电梯的按钮上经常可以看见。

第4章 手电筒剖析

  介绍手电筒简化版,灯泡的基本工作原理,属于初中物理范畴。

第5章 绕过拐弯的通信

  当两个人离得比较远,且手电筒不能直射时,也可以利用摩尔斯电码进行通信,如下图,利用灯泡的亮灭传递信息。之后介绍了一些很基本的物理学知识。当二者的距离很远时,利用电线进行传输会有问题,最明显的就是导线电阻会很大,简单的方法有增大电压和使用粗导线来,但通信距离仍然不能无限制增加

  

第6章 发报机与断电器

  1 9世纪早期,你可以即时通信和远距离通信,但不能同时达到两个要求。即时通信只能限制在你的声音能达到(没有扩音器可用)或是你的眼睛能看到(也许得用望远镜)的范围;远距离通信则要花时间用信件通过马车、火车或者轮船的方式来实现。电报的发明真正标志着现代通信的开始。人类首次能够在眼、耳的范围之外以快于马奔跑的速度通信

  电磁铁是电报的基础。一端上开关的闭合引起另一端上的电磁铁产生一些动作。开始电报没有采用灯泡的原因是因为那时白炽灯还没有发明。

  发明中使用的二元码是其精华所在,但在后来的电子和无线电通信中,包括电话、收音机和电视,二元码都没有用到,只到最近二元码才出现在计算机、C D盘、D V D盘、数字卫星电视广播和高清晰电视中。

第7章 十进制记数法

  介绍十进制的基本信息

第8章 其他进位制记数法
  引出2进制  通过将数字系统减少至只有0和1两个数字的二进制数字系统,我们已经在能够接受的范围内做了深入的讨论。不可能找到比二进制数字系统更简单的数字系统了。二进制数字系统架起了算术与电之间的桥梁。前面各章中,我们所看到的开关、电线、灯泡、继电器等物体都可以表示二进制数0和1:

  电线可以表示二进制数字。有电流流过电线代表二进制数字1;如果没有,则代表二进制数字0。
  开关可以表示二进制数字。如果开关闭合,代表二进制数字1;如果开关断开,代表二进制数字0。
  灯泡可以表示二进制数字。如果灯泡亮着,代表二进制数字1;如果没亮,代表二进制数字0。
  电报继电器可以表示二进制数字。继电器闭合,代表二进制数字1;继电器断开,代表二进制数字0。

第9章 二进制数

  这章我最感兴趣的就是无处不在的UPC(universal product code,通用产品代码),重要知道了条形码的原理,哈哈O(∩_∩)O~

  可将条形码形象地看成是细条和黑条,窄间隙和宽间隙的排列形式,事实上,这是观察条形码的一种方式。黑色条有四种不同的宽度,较宽的条的宽度是最细条的宽度的两倍、三倍或者四倍。同样,各条之间的间隙中较宽的间隙是最窄间隙的两倍、三倍或者四倍,就像我以前一样,看得不明所以,但也可以采用另一种看法:将它看作是一系列的比特实际上,扫描仪只识别整个条形码的一条窄带,条形码做得很大是为了便于结算台的操作人员用扫描仪对准顾客选购的物品。扫描仪所看到的那一条窄带可以这样表示:

起初的3个比特通常是1 0 1,这就是最左边的护线,它帮助计算机扫描仪定位。从护线中,扫描仪可以知道代表单个比特的条或间隙的宽度,否则,所有包装上的U P C印刷大小都是一样的。最后的最右护线使得U P C反向扫描(也就是自右向左扫描)同正向扫描一样成为可能,为支持反向扫描,左边数字和右边数字互为补码,同时还有奇偶检验功能,左边数字的1的数量为奇数,右边的数字1的数量为偶数。如果一组比特位中含有奇数个1,就称之为奇校验;如果含有偶数个1,就称之为偶校验。

按照上表,条形码的含义为0 51000 01251 7这与下面的数字代表的含义是一样的

第一个数字(在这里是0)被称为数字系统字符, 0的意思是说这是一个规范的U P C编码。
如果是具有不同重量的货物的U P C(像肉类或其他商品),这个数字是2;订单、票券的U P C
编码的第一个数字通常是5。

紧接着的5个数字是制造商代码。

最后的数字(这里是7)称作模校验字符(就类似于ISBN的最后一位)

和通常的想法相反, U P C中没有包含该种产品的价格。产品的价格信息可以从商店中使用的与该扫描仪相联的计算机中检索互到。

第10章 逻辑与开关

  介绍大佬-->乔治·布尔,布尔代数的发明人,介绍布尔代数以及一些布尔运算

第11章 逻辑门电路

  将布尔代数与电路连接起来,所需要的电路结构为继电器。

  像开关一样,继电器也可以串联或并联以执行逻辑中的简单任务。继电器的组合称为逻辑门。(原来耳熟能详的逻辑门的物理结构是这样)

  ‘ 

               与门  

 

                       或

          非门

第12章 二进制加法机

  前段时间还在Leetcode上做了一道题,不使用+法实现+法,就是利用&与运算和^异或运算来实现的,以前数电的东西,忘了....

  核心:与门实现进位,异或门实现加法

  

而加法使用异或门来实现

之后介绍了半加器与全加器,全加器需要两个半加器

现在,你可能会问:“计算机真的是以这种方式(例子为8位串行加法器,且采用继电器实现逻辑门,由于比较简单,不予赘述)把数字加起来的吗?”

基本上是这样的,但不完全是。
首先,加法器应该做得更快。如果你明白这个电路是如何工作的,你会看到最低位相加产生的进位作为下一列数相加的一个输入,而第3列的加法又等着第2列加法的进位,依此类推。加法器总体的速度等于加数的位数乘以单个全加器的速度。这种进位方式称为行波进位。更快的加法器使用称为先行进位的加法电路,从而加快了加法进程。---->即并行加法,利用设备的冗余来提高速度。
第二(但是十分重要),计算机再也不用继电器了!尽管它们曾经用过。建于2 0世纪3 0年代初的第一批数字计算机使用继电器,后来又用了真空管。现代计算机用晶体管。当用在计算机中时,晶体管和继电器的功能差不多,但是晶体管速度更快,体积更小,更安静,更省电,而且还便宜不少。构造一个8位加法器仍然需要1 4 4个晶体管(如果采用先行进位,则需要更多),但整体电路的体积却小多了。

猜你喜欢

转载自www.cnblogs.com/caishunzhe/p/12298248.html