摩尔斯电码示例与代码实现

通过编程示例、历史背景和真实信号模式来学习摩尔斯电码。

实现示例

Python 实现

Python 版摩尔斯电码27 行
正在高亮代码...

JavaScript 实现

JavaScript 版摩尔斯电码25 行
正在高亮代码...

历史应用

电报时代(1830 年代至 1900 年代)

最初用途: Samuel Morse 和 Alfred Vail 为电报通信发展出这套编码系统,让远距离文字信号传输第一次真正变得可行。

著名的第一封电报(1844)10 行
正在高亮代码...

循序渐进学习摩尔斯电码

为什么要学摩尔斯电码?

即便在数字时代,摩尔斯电码仍是实用技能:

  • 紧急信号:SOS(... --- ...)全球通用,只要能产生"通/断"信号——灯光、声音、敲击——都能发出
  • 业余无线电:CW(连续波)方式在短波段依旧流行,比语音更容易穿透弱信号环境
  • 航空与航海:导航信标至今仍以摩尔斯电码播发台站识别码
  • 无障碍输入:肢体活动受限的用户可以通过单键开关用摩尔斯电码打字
  • 谜题与 CTF:密室逃脱、地理寻宝和网络安全比赛里经常出现

示例 1:经典的 SOS 信号

最出名的摩尔斯序列是一个求救信号,并不是 "Save Our Souls" 的缩写——之所以选这组字母,是因为它的信号模式不可能与其他任何编码混淆。

明文:    S      O      S
电码:    ...    ---    ...
间隔版:  · · ·  − − −  · · ·

历史上这个信号是一组不中断的连发符号,中间没有字母间隔。现代解码器对两种写法都能识别。

示例 2:编码完整句子

单词之间需要更长的间隔(此处用 / 表示)。

明文:    HELLO WORLD
电码:    .... . .-.. .-.. --- / .-- --- .-. .-.. -..

时长规则:点 = 1 个时间单位,划 = 3 个时间单位,字符内间隔 = 1 个单位,字符间间隔 = 3 个单位,单词间间隔 = 7 个单位。

示例 3:数字与标点

明文:    CALL 911.
电码:    -.-. .- .-.. .-.. / ----. .---- .---- .-.-.-

数字有规律:1.----2..---,以此类推——数字每增加 1,最前面的一个点就换成一划。

示例 4:练习题

试着手工解码下面这一行,再用解码器核对:

密文: -.-. --- -.. .

提示:一个程序员每天都会见到的四字母英文单词。

提高阅读速度的技巧

  1. 用耳朵学,不要只看表:记住节奏感(滴答、答滴)比记字形更有效
  2. 从高频字母开始:E、T、A、N、I、M 覆盖了大部分英文文本
  3. 按点划数量成组记忆E · / I · · / S · · · / H · · · · 都从单点扩展而来
  4. 先数划,再补点:划更长更容易辨识,数完划再回头补点
  5. 先练发送再练接收:亲手敲出消息比被动听音更能练好时序感

相关资源