Charles Petzold《Code》----2016.12.28 读1~3章

注:所有笔记均为自己的理解总结,可能并非书本原文,对错不予负责。

第一章

摘要:介绍了编码的含义,以及通过介绍“手电筒交流法”引出了二进制码的概念。

编码其实就是用“一套规则化的表达方式”来表达“现实中的事物”。
比如文字就可以说是一类编码,因为“猪”这个文字可以是现实中的狗,可以是现实中的猫,它之所以是猪,是因为我们把它规定为它表达的就是现实中的猪。
再比如二进制码,不同的二进制位的组合可以表示不同的字母,再将这些不同的字母组合,就可以表达单词,再将单词组合就可以表达句子,从而能够表达出自己想说的东西。

“手电筒交流法”中有意思的思维方式:
1、我们可以用手电筒在墙上把文字通过笔画来画出来,但是有一个更棒的方式,那就是通过手电筒短闪和长闪的组合来表达不同的字母。 (中间还有一种方式,就是没有短闪和长闪的区别,闪一下表示a,闪两下表示b,…,闪26下表示z。但这样也是很愚蠢的)
2、举个例子说明:假如短闪是1s,长闪是3s。那么在表达一个“码字”(例如字母‘a’)时,每次闪烁之间要停顿1s。一个单词内的不同码字之间要停顿3s。不同的单词之间要停顿6s。
3、简单而短促的编码,被分配给字母表中使用频率较高的字母;而不太常用的字母,则被分配以较长的编码。

打字机:原理类似,只不过其不是短闪和长闪,而是dot(点)和dash(划)。

第二章

摘要:通过介绍由Samuel Finley Breese Morse(塞缪尔,莫尔斯)发明的Morse Code(莫尔斯码),引入“位数和其所能表达的码字数目的关系”。

Morse Code:也被称作Binary Code(二进制码),因为这种编码的组成元素只有两个 ——— “点”和“划”。

位数和其所能表达的码字数目的关系
这里写图片描述
比如如果有6位,那么总共的码字就达到了2+4+8+12+32+64=126种

第三章

摘要:通过介绍braille(布莱叶盲文),引出一些braille中有意思的思维方式。

小故事
Samuel Morse并不是第一个将书面语言的字母成功编码的人。实际上,在因自己的名字被用来命名某种编码方式而名声大噪的人中,Morse也不是第一人,而应该是法国盲人Louis Braille(路易斯.布莱叶)。
10岁时,他被送进“巴黎皇家盲人学校”学习,当时他阅读的方式是其学校校长瓦伦丁.霍伊发明的一种“在纸面上印下凸起文字的系统”(相当于用手电筒画字)。
12岁时,他就很熟悉一种叫“夜间书写”的文字系统,是由法国的一名军官Charles Barbier发明。他在厚纸上使用凸起的点和划得组合表示文字。不过该系统并非使用与字母表相对应的点划编码串表示字母,而是用与读音相对应的编码串表示。(相当于用手电筒的短闪和长闪,只不过不是表示字母,而是表示读音)。
15岁时,通过对”夜间书写”系统的改进,创建了自己的系统。

braille:在布莱叶盲文中,每个在书写文字中用到的符号 ——— 具体来说就是字母、数字和标点符号 ——— 都被编码成为2*3的点码单元中的一个或者多个凸起的点。这个点码单元包含的点通常使用1到6的数字来编号。(了解即可)
这里写图片描述

braille中有意思的思维方式:
1、每个表示单个字母的点码单元如果单独出现,他们就表示一个普通的单词(可以理解为‘a’就表示‘and’,‘b’就表示‘but’)。
2、一些多余的点码单元用来表示单词中字母串的缩写,比如可以用某个点码单元表示字母串’ing’、‘com’。
3、‘ble’的码字很重要,因为当它不是用来作为单词的一部分时,它的出现就意味着之后的码字应该被译为数字。表示数字的码字和表示字母a到j的码字是相同的。
‘ble’码字改变了后面编码的意义 ——— 从表示字母到表示数字,又从表示数字回到表示字母。像这样的编码通常被称作precedence codes(优先码)或者shift codes(换挡码)。它们改变着作用域内编码的含义,直到作用域结束。
4、6号凸点 ——— 大写标识符。这个符号表示它之后的字母都将被译为大写。类似这样的编码被称为escape codes(逃逸码)。逃逸码让你逃离对编码串单调的、一成不变的解析,而转入一种新的解析方式中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
书的作者Charles Petzold是著名的《Programming Windows》的作者。全书风趣幽默,生动活泼,充满生活中的实例和直观的插图。虽以“编码”为题,却是以“编码”为主线,深入浅出地讲解了逻辑代数、离散数学、数字电路、微机原理、汇编语言、编译原理和操作系统等计算机原理方面的基础知识。与计算机专业课本相比,没有艰涩的定义和描述,充分地把抽象的内容形象化了。它可以被定位为大众化的计算机科普书籍,然而与一般的国内计算机科普物相比,它的信息量、专业程度绝对是高一个层次的。因此很适合对计算机有一定应用基础,有兴趣了解一点计算机机理的朋友。同时也可作为学习数字电路、微机原理等课程的启发性引论。   对于计算机专业学生,我觉得此书同样非常值得一看。就个人体会,举一二例:在看到二进制的加减实现那块,虽然自己原先清楚那些概念和方法,但是基于死板的公式和法则的,没有一个直观的体会。而在《CODE》中,分别釆用实物、简单电路、十进制数进行类比,逐步揭示了补码、加法器等机理,可谓温故而知新。阅书中对汇编语言在各个节循序渐进的引入,才发现原来汇编那些“古怪”的逻辑竟是如此的自然。而书中对数字电路的阐述完全是基于计算机实际应用的,从逻辑电路到触发器、存储器,直至微处理芯片,每一步在讲解电路原理的同时都辅以如何达到应用目的,让人不会觉得空洞和抽象。   此书比较注重内容的历史连贯性,各个节都提及了相关技术的发展史,让我们认识到数字技术与计算机的发明及应用是一个逐级推进的历史过程。同时一些趣闻轶事也使我们开怀一笑。另一个特点是书中的不少东西是可以亲自实践的(通过实物或软件仿真),比如一些简单数字电路的实现。这很可能激发一些朋友自己造一块CPU的冲动。   高手高就高在把深奥的理论知识平民化了。总之,我觉得如果你是计算机专业学生,了《CODE》,也许会发现原来还有一些简单的道理自己并不清楚,有茅塞顿开之感。而对不了解计算机的人来说,你将会豁然开朗——原来计算机并不神秘!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值