隐匿在计算机背后的语言《编码》(编码与组合)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39591494/article/details/82262527

隐匿在计算机背后的语言之编码组合

      晚上好,本章分享:隐匿在计算机背后的语言《编码》(编码与组合)一章,读完之后我只想说:同样是人,为何它们如此优秀~~ 再此分享。

      莫尔斯码其实是伴随着电报机的问世而被发明的,关于电报机在后续会有深入的了解学习。 本文主要通过研究莫尔斯码我们可以很方便的理解编码的本质一样,通过电报机来了解计算机硬件是个不错的途径。

      通过上一章的学习,了解了莫尔斯码表按字母表排序的表格。如下:
这里写图片描述

      比起发送莫尔斯码,接受莫尔斯码并进行解码的过程需要浪费很多的时间,因为解码的过程中不得不根据一串点 和 划 组成的编码序列来反差字母,例如:如果你接受到一串如:划-点-划-划 的编码,那么在这个时候,你就会通过莫尔斯码表中编码对应的字母来一个个查找,直到找到这串编码相符合的字母“Y”为止,那么在这个过程中会花费很多的时间。

      那么问题就是出在这里,因为我们现在只有一张提供字符–>莫尔斯码的编码表,而正缺少一张可以实现反向查询的莫尔斯码–>字母的解码表 也可以说译码表。 在开始学习莫尔斯码的初级阶段,如果有这样的一个表那简直是方便太多太多了。似乎这些字符对应的点和划序列并没有什么规律。

      或许根据编码中包含的点,划得多少来对其进行分组,是一个更高的组织这些编码的方法,例如:一个包含一个点或者一个划得莫尔斯码智能代表二个字母 一个是 E 或 T。 不理解请看莫尔斯码表。

一组包含2个点或者划得编码组合,可以给我们呈现出4个字母–I A N M 如下:
这里写图片描述
两个“滴”或“嗒” 点或划 的组合则代表了 4个字母I、A、N、M:
这里写图片描述

以此类推:三个“滴”或“嗒”的序列代表了 8个字母:
这里写图片描述
最后(如果不考虑数字和标点符号的摩尔斯电码),四个“滴”或“嗒”的序列则共代表了1 6个字母:
这里写图片描述
      四张表共包括2 + 4 + 8 + 16 = 3 0个编码,可与3 0个字母相对应,比拉丁字母所需的2 6个字母还多了4个。出于这个原因,在最后一张表中,你可能注意到有4个编码与重音字母相对应。

      在翻译别人发送的摩尔斯电码时,上面 4张表提供了极大的便利。当你接收到一个代表特定字母的码字时,按其中含有的“滴”“嗒”个数,至少可以跳到其对应的那张表中去查找。每张表中,全“滴”的字母排在左上角,全“嗒”的字母排在右下角。

      每张表都恰好是其前一张表的两倍大小。这其中包含的意义是:前一张表的码字后加一个“滴”或加一个“嗒“,即构成了后一张表。
按下面的方式总结这个有趣的规律:
这里写图片描述

四张表中每张码字数都是前一张的两倍,那么如果第一张表含2个码字,第二张表则含2×2个码字,第三张表2×2×2个码字。以下是另一种表达方式:
这里写图片描述

当然,如果遇到数的自乘,可以用幂表示,例如 2×2×2×2可以写成24。数字2、4、8、1 6分别是2的1、2、3、4次幂,因为可以用依次乘 2的方法将它们计算出来。由此我们的总结
还可以写成下面的方式:
这里写图片描述

这张表简单明了,码字数是 2的次方,次方数目与码字中含有的“滴”“嗒”数目相同。我们可以把表总结为一个简单的公式:
这里写图片描述

为了使译码的过程更为简便,可以画出如下一张树形图:
这里写图片描述
      这张表表示出了由“滴”与“嗒”的连续序列得出的字母。译码时,按箭头所指从左到右进行。例如,你想知道电码“滴-嗒-滴”代表的字母,那么从最左边开始选择点,沿箭头向右选择划,接着又是点,得出对应的字母是 R,它写在最后一个点的旁边。
如果认真考虑,会发现事先建立这样一张表是定义摩尔斯电码所必需的。首先,它保证了你不会犯给不同的字母相同码字的错误!其次,它保证你使用了全部的可用码字,而没有使“滴”与“嗒”的序列毫无必要的冗长。

此处不理解,请仔细看图!!!

      我们可以加长码字至 5位或更长,5位长的码字又提供了额外的 3 2(2×2×2×2×2或25)个码字。一般而言,这就足够 1 0个数字和1 6个标点符号使用。实际上,摩尔斯电码中的数字确实是5位的,但在许多其他编码方式中, 5位码字常用于重音字母而不是标点符号。为了包含所有的标点符号,系统必须扩充至 6位表示,提供6 4个附加编码,此时系统可表示2 + 4 + 8 + 1 6 + 3 2 + 6 4共1 2 6个字符。这对摩尔斯电码而言太多了,以至于留下许多“未定义”的码字。此处“未定义”指不代表任何意义的码字,如果在你接收的摩尔斯电码中有未定义的码字,就可以肯定发送方出了差错。
由于推出了下面这条公式:

此处不好理解!!!(需要结合以上莫尔斯码分组来看)

这里写图片描述
我们就可以继续导出更长的码字位数所代表的码字数目。很幸运,我们不必为确定码字数目而写出所有可能的码字,我们所要做的不过是不断地乘 2而已:
这里写图片描述

10个数字代表莫尔斯码表数字 如下:
这里写图片描述

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

      上面所做的对二元编码的分析在数学上的一个分支—组合学或组合分析里只能算是一个简单的练习。传统上,由于组合分析能够用来确定事件出现的几率,例如硬币或骰子组合的
数目,所以它常用于概率统计,但它也同样有助于我们理解编码的合成与分解。

隐匿在计算机背后的语言《编码》(至亲密友):https://blog.csdn.net/qq_39591494/article/details/81518811
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_39591494/article/details/82262527