摩斯电码记忆方法
只需像记忆 A~Z 字母表一样记忆一个重新排序的字母表,就可以轻松记住摩斯电码。
数字
数字的摩斯电码规律明显且易于记忆,不必赘述。
数字 | 电码 | 数字 | 电码 |
---|---|---|---|
0 | ----- | 5 | ..... |
1 | .---- | 6 | -.... |
2 | ..--- | 7 | --... |
3 | ...-- | 8 | ---.. |
4 | ....- | 9 | ----. |
字母
先给出表格:
编号 | 第 1 组 | 第 2 组 | 第 3 组 | 第 4 组 | 第 5 组 |
---|---|---|---|---|---|
0 | E . | I .. | S ... | H .... | B -... |
1 | T - | A .- | U ..- | V ...- | X -..- |
2 | N -. | R .-. | F ..-. | C -.-. | |
3 | M -- | W .-- | @ ..-- | Y -.-- | |
4 | D -.. | L .-.. | Z --.. | ||
5 | K -.- | @ .-.- | Q --.- | ||
6 | G --. | P .--. | @ ---. | ||
7 | O --- | J .--- | @ ---- |
其中
@
表示留空,没有对应字母。
为了后续处理方便,本文一律从 0 开始计数,例如ABCD
中A
是第 0 个字母,B
是第 1 个字母。熟悉编程的读者对此肯定不陌生:D
后文讲的记忆方法就是在心中查表的方法,如果你了解一点二进制,或许已经看出了这样组织表格的目的,也就不必继续阅读了。
为什么不按照 A~Z 字母顺序编码(如:A.
、B-
、C..
、D.-
、E-.
、F--
……),这样岂不是更方便?
在英语文本材料中,字母 E 和 T 的出现频率是最高的。出现频率较高的字母都放在了比较靠前的组别,对应摩斯电码更短。这样一段文本对应的摩斯电码一般会比使用 A~Z 顺序编码得到的结果更短,并且只记住较短的前 3 组 14 个字母就覆盖了一段英语文本中大约 80% 的字符。
记忆
需要分五组记下这个重新排序的字母表。你可以像小时候记忆 A~Z 时一样死记硬背,也可以尝试编点口诀,总之,这不是件难事。
- 第 1 组:ET
- 第 2 组:IANM
- 第 3 组:SURWDKGO
- 第 4 组:HVF@L@PJ
- 第 5 组:BXCYZQ@@
电码转字母
判断电码所在组数和编号,将电码转换为十进制(.
视为0
,-
视为1
)即为字母编号,从而快速检索到对应字母。
..
长度为 2,所以在第 2 组,二进制00
对应十进制表达为0
,所以是第 2 组第 0 个字母:I.--
长度为 3,所以在第 3 组,二进制011
对应十进制表达为3
,所以是第 3 组第 3 个字母:SURW.--.
长度为 4 且以.
开头,所以在第 4 组,后 3 位(--.
)二进制110
对应十进制表达为6
,所以是第 4 组第 6 个字母:HVF@L@P-.-.
长度为 4 且以-
开头,所以在第 5 组,后 3 位(.-.
)二进制010
对应十进制表达为2
,所以是第 5 组第 2 个字母:BXC
字母转电码
类似地,判断字母所在组数和编号,将编号转换为二进制,即为字母对应电码。
由于字母无法像电码一样直接看出其所在位置,所以需要在心中从头背诵字母表检索。考虑到出现频率高的字母排在前面,平均来说检索花费的时间不会太多。
I
:ET I,第 2 组第0
个,转换为长度为 2 的二进制00
,即..
W
:ET IANM SURW,第 3 组第3
个,转换为长度为 3 的二进制011
,即.--
P
:ET IANM SURWDKGO HVF@L@P,第 4 组第6
个,转换为长度为 3 的二进制110
,即--.
,前面补上.
得到.--.
C
:ET IANM SURWDKGO HVF@L@PJ BXC,第 5 组第2
个,转换为长度为 3 的二进制010
,即.-.
,前面补上-
得到-.-.
如果能熟练地直接使用二进制数数,就不需要二进制、十进制互换的过程,速度可以更快。
使用次数足够多后,就可以实现直接转换,无需在心中查表。