个人希望通过笔记的方式记录研读IT著作的收获,也算是对自己的一个督促,笔记内容不会照搬原文,尽量以最简洁的形式阐述原文,对原文内容会有所取舍并且加上自己的感想等,供自己之后查阅,毕竟好记性不如烂笔头(虽然不是以纸笔的形式),本文讲的是莫尔斯码的编码与组合~

目录

接收莫尔斯码

莫尔斯码反查

反查规律~

莫尔斯码树形图:

码字数目公式

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


莫尔斯码( MorseCode )是由塞缪尔 •莫尔斯发明的(1791-1872 ),莫尔斯码其实是伴随着电报机的问世而被发明的。正如通过研究莫尔斯码我们可以很方便地理解编码的本质一样,通过电报机来了解计算机硬件也是个不错的途径。

大多数人都会发现莫尔斯码的发送比接收更为简单。即使你并没有熟记莫尔斯码, 也可以很方便地使用下面这张按字母表顺序排列的表格。

接收莫尔斯码

比起发送莫尔斯码,接收编码并进行解码要费时费力得多,因为译码者不得不根据一串由 “点”、“划” 组成的晦涩的编码序列来反查字母。例如,如果你接收到一串形如 “划-点-划-划” 的编码,那么你就必须从表的第一个字母开始逐个搜寻,直到找到与这串编码相符的字母 “Y” 为止。

问题就出在这里,因为我们现在只有一张提供 “字母 — 莫尔斯码” 的编码表,而 缺少一张可以实现反向查询的“莫尔斯码 字母” 译码表。所以忘掉字母序列吧。或许根据编码中所包含点、划的多少来对其进行分组,是一 个更好的组织这些编码的方法。

莫尔斯码反查

一个仅包含1个点或1个划的莫尔斯码只能代表 两个字母:“E” 或 “T”。

一组含有 2个点或划的编码组合,可以给我们呈现出 4个字母一I,A,N 和 M。

一组含有 3 个点或划的莫尔斯码可以为我们提供8个字母—S,U,R,W,D,K,G,O。

最后(如果我们不想考虑存在数字和标点符号的莫尔斯码的情況 ),一串由4 个点或划组成的莫尔斯码就可以表示16 个字符。

综合以上数据来看,这四张表包含了 2+4+8+16 组码字,总共表示了 30 个字母, 比拉丁字母表的 26 个字母还要多出 4 个。所以,你会注意到最后一个表中有 4 组编码是用来表示重音字母(拉丁字母)的。那么当有人给你发送莫尔斯码的时候,上述四张表可能会让你的解码工作变得轻松很多。

反查规律~

注意看,每个表格所包含的码字数目都是前一张的两倍。这其实很好理解:每个表格所含有的码字,可以看成是在前一张表格所包含的全部码字上再加一个 “点”,或者再加一个 “划” 而组成的新码字。

可以用如下这样一个列表来总结这个有趣的规律。

上表已经很简洁了。如果知道了码字中 “点” 和 “划” 的数目,那么以这个数目为指数的 2 的幂运算结果就是其总共可以表示的码字数。我们可以用下面这个简单的公式来概括上述表格所表示的内容:

莫尔斯码树形图:

为了让莫尔斯码的解码过程更加简单,或许画张图会有所帮助,例如下面这张树型图。

这张图给出了所有字母及其所对应的由 “点” 和 “划” 组成的连续序列。当对一串 码字进行解码时,我们需要沿着箭头从左向右进行搜寻。以 “点-划-点” 的码字为例来 说,当你需要找出这串码字所代表的字母时,应首先从图的左边开始,选择 “点” 的分 支;然后继续沿着箭头向右选择 “划”,接着又是一个 “点”。找到最后一个 “点” 时结 果就会紧随其后出现了,没错就是字母 “R”。

如果仔细想一想,你就会发现构建这样一个表对于定义莫尔斯码规范来说是很必要的,首先,它确保了我们不会对不同的字母定义相同的码字。其次,通过这个表我们可以用尽可能短的码字来表示所有的字母,而避免产生编码长度上的浪费。

码字数目公式

我们可以继续加长码字至 5 位或者更长,不过这可能超出页面打印边界。一串由 5 个 “点” 或 “划” 组成的编码串可以为我们提供 32 ( 2 x 2 x 2 x 2 x 2, 或 2的5次方 )种扩展的码字。对于莫尔斯码中定义的 10 个数字和 16 个标点符号来说,通常这已经足够了,而实际上数字确实就是使用 5 位的莫尔斯码来表示的。但是在很多其他编码方式中,M立码字常用来表示重音字母而不是标点符号。

我们很容易就能得到这样一个小公式:

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

莫尔斯码也被称作二进制码(BinaryCode ),因为这种编码的组成元素只有两今一 “点” 和 “划”。这跟硬币有些类似,因为硬币落到地上只能是正面朝上或反面朝上。二 元对象(例如硬币)和二进制码(例如莫尔斯码)常常使用2的乘方来进行描述。

上面所做的关于二进制编码的分析工作,其实是数学的一个分支,称作 “组合学” 或 “组合分析”,而我们所作的分析则只能说是一个简单的练习。组合分析涉及类似像扔硬币、掷殷子这样的需要对其组合数目进行推算的问题,对于我们理解码字的组合与分解也是十分有帮助的。

【读书笔记】《编码 隐匿在计算机软硬件背后的语言》02 编码与组合相关推荐

  1. 编码——隐匿在计算机软硬件背后的语言上

    编码:隐匿在计算机软硬件背后的语言是讲述计算机工作原理的.不过,你千万不要因为"工作原理"之类的字眼就武断地认为,它是晦涩而难懂的.作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述 ...

  2. 如何用继电器实现逻辑门(与或非门)- 编码隐匿在计算机软硬件背后的语言读后感

    首先了解一下继电器,说起继电器就不得聊一下电报机.(想直接了解如何实现逻辑门的直接往下翻,不过还是推荐看一下为什么会产生逻辑门,加深印象) 摩尔斯(发明摩尔斯密码的人)在1836年通知专利局,他发明了 ...

  3. 读书:编码——隐匿在计算机软硬件背后的语言上

    摩斯密码 摩斯密码是由"."(短音)与"-"(长音)所组成的,短促的点信号" .",读" 的 "(Di):保持一定时间的 ...

  4. 顶级程序员书单系列二:《编码-隐匿在计算机软硬件背后的语言》

    浅谈这本书 如果让我做一个排名,我想这本书,可以在我的顶级程序员书单系列排名第8-10位.这本书讲述了从最简单的加法器到触发器到存储器到一台计算机demo的搭建,整本书的语言都十分通俗易懂,作者简直就 ...

  5. 计算机神书『编码:隐匿在计算机软硬件背后的语言』

    在知乎回答了一个关于书籍推荐的问题:有哪些短小精悍的好书推荐? 如果只推荐一本计算机类的神书,那必然是<编码:隐匿在计算机软硬件背后的语言>. 渴望交流是大多数人的天性.在本书中,&quo ...

  6. 《编码:隐匿在计算机软硬件背后的语言(Code:The Hidden Language of Computer Hardware and Software)》读书笔记

    声明 该文章是阅读<编码:隐匿在计算机软硬件背后的语言>一书之后整理出的读书笔记.若有错误,还需继续修正与增删. Preface 作者Charles Petzold是Windows编程界的 ...

  7. 编码:隐匿在计算机软硬件背后的语言(7)--存储器组织

    在上一篇文章编码:隐匿在计算机软硬件背后的语言(6)--反馈与触发器中,我们知道一个反向器.两个与门和两个或非门可以构成一个D型电平触发器.它可以存储一位信息,为了表达地更清晰,我们把输入端和输出端重 ...

  8. 编码:隐匿在计算机软硬件背后的语言(2)--二进制

    1比特是可能存在的最小的信息量,任何小于1比特的内容根本算不上是信息. 信息是指多个可能性中的一种. 最常见的二进制数的表现形式也许就是无处不在的通用产品代码(UPC,Universal Produc ...

  9. 【JS】隐匿在计算机软硬件背后的语言

    在重温<编码:隐匿在计算机软硬件背后的语言>第12章--二进制加法器时,心血来潮用JS写了一个模拟串行加法器. 测试断言工具TestUtils.js function assertTrue ...

最新文章

  1. 问题一:云服务中那么多的服务器怎么拓扑???
  2. 特斯拉全新自动驾驶芯片最强?英伟达回怼,投资者用脚投票
  3. 第一节:别出心裁的HTML5简介
  4. python sys.modules
  5. 腾讯云服务器CentOS 7安装JAVA JDK并运行class文件
  6. hbase 中文乱码 查询_如何在 HBase Shell 命令行正常查看十六进制编码的中文?哈哈~...
  7. mysql如何批量添加数据_mysql如何大批量插入数据 mysql大批量插入数据4种方法
  8. 2021年河海大学计算机与信息学院考研指南
  9. 如何优雅的注入Java Agent内存马
  10. torch/utils/cpp_extension.py raise RuntimeError(message) from e
  11. 终于进了阿里,记录一下我作为一名测试员磕磕碰碰的三个月找工作经历...
  12. 派对屋3000效果器怎样调试_演出效果器的调试和使用技巧
  13. 安卓终端模拟器的安装和使用
  14. Xilinx软件开发:PMU实验
  15. Jenkins集成Sonar(3/3)- 安装SonarQube Scanner进行扫描(离线安装)
  16. 新锐房地产销售管理系统(部分流程)技术解析(七) 销售管理_认筹管理
  17. Promise(解决回调地狱)
  18. DSSD(Deconvolutional Single Shot Detector)
  19. CSP 202112-1 序列查询 python
  20. 电脑莫名奇妙地出现了嘀嗒壁纸,只有下拉的水滴图标,找不到文件所在位置,怎么删除?

热门文章

  1. img标签禁止图片拖动
  2. 我绑定了手机,怎么没有赠送的下载积分呀
  3. ❤️创意网页:有趣的文字冒险游戏(可以无限拓展)
  4. SonarQube篇- CentOS7安装Sonarqube8.0详解
  5. 24句爱情相关经典名言(日中对照)
  6. 深度学习故障诊断初学者 - 学习路线
  7. swagger 接口参数顺序_Swagger2接口排序
  8. i7 12700k和i7 12700的区别 i712700k和12700性能差距
  9. Part I 空气曲棍球 Chapter6(6.8 Adding Rotation)
  10. 原代细胞专刊 | 人脐静脉内皮细胞