摩尔斯码(Morse Code)

尔斯电码莫尔斯电码(Morse code)是美国人莫尔斯(Samuel Finley Breese Morse)于1837年发明的, 由点dot(.)、划dash(-)两种符号组成。
1、一点为一基本信号单位,一划的长度=3点的长度。
2、在一个字母或数字内,各点、划之间的间隔应为两点的长度。
3、字母(数字)与字母(数字)之间的间隔为7点的长度。

在我国电报通信中,每个汉字都有四个数字代表,组成其电文的数字是用的"短码"拍发的。"短码"不可和字码一起混合使用!业余无线电通信中不用"短码"!
数码(短码)
1: .- 2: ..- 3: ...-- 4: ....- 5: .
6: -.... 7: --. 8: -.. 9: -. 0: -
=============================

摩斯码对照表.


Letter Composed of Name
A  .-  ALFA
B  -...  BRAVO [ ‚brɑː'vəʊ]
C  -.-. CHARLIE
D  -..  DELTA [ 'deltə]
E  .     ECHO [ 'ekəʊ]
F  ..-.   FOXTROT
G  --.   GOLF
H  .... HOTEL
I  ..    INDIA
J  .---   JULIETT
K  -.-   KILO
L  .-.. LIMA
M  --    MIKE
N  -.     NOVEMBER
O  ---   OSCAR
P  .-- PAPA
Q  --.-  QUEBEC
R  .-.    ROMEO
S  ...   SIERRA
T  - TANGO
U  ..-   UNIFORM
V  ...-   VICTOR
W  .--   WHISKY
X  -..- X-RAY
Y  -.--  YANKEE
Z  --.. ZULU


1   .----
2   ..---
3   ...--
4   ....-
5   .....
6   -....
7   --...
8   ---..
9   ----.
0   -----

Full Stop ( . ) .-.-.- di-DAH-di-DAH-di-DAH

Comma ( , ) --..-- DAH-DAH-di-di-DAH-DAH

Semicolon ( ; ) - .-.-. DAH-di-DAH-di-DAH-dit

Question Mark ( ? ) ..--.. di-di-DAH-DAH-di-dit

Hyphen (Dash) ( - ) - ...- DAH-di-di-di-DAH

Slash ( / ) - ..- . DAH-di-di-DAH-dit

Parenthesis ( ( ) L - .- - .- DAH-di-DAH-DAH-di-DAH
( ) ) R - .- - . DAH-di-DAH-DAH-dit

Colon ( : ) ---... DAH-DAH-DAH-di-di-dit

Quote ( " ) .-..-. di-DAH-di-di-DAH-dit

Apostrophe ( ' ) .---- . di-DAH-DAH-DAH-DAH-dit

Dollar sign ( $ ) ...-..- di-di-di-DAH-di-di-DAH

Invitation to transmit(go ahead) - .- DAH-di-DAH

Attention - .- .- DAH-di-dah-di-DAH

Error ... ..... di-di-di-di-di-di-di-dit

Wait .- ... di-DAH-di-di-dit

AR (end of message) .- .- . di-DAH-di-DAH-dit

International
distress call (SOS) .. .---.. . di-di-di-DAH-DAH-DAH-di-di-dit

Test letter (V) ...- di-di-di-DAH

Received, OK .- . di-DAH-dit

End Broadcasing . . .- .- di-di-di-DAH-di-DAH

==================================================

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的C语言程序,可以实现尔斯电码的编码和解码: ```c #include <stdio.h> #include <string.h> // 尔斯电码表 const char* morse_code[] = { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", "-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----." }; // 字符串转换为尔斯电码 void encode(char* str) { for (int i = 0; i < strlen(str); i++) { if (str[i] >= 'a' && str[i] <= 'z') { printf("%s ", morse_code[str[i] - 'a']); } else if (str[i] >= 'A' && str[i] <= 'Z') { printf("%s ", morse_code[str[i] - 'A']); } else if (str[i] >= '0' && str[i] <= '9') { printf("%s ", morse_code[str[i] - '0' + 26]); } else if (str[i] == ' ') { printf("/ "); } } printf("\n"); } // 尔斯电码转换为字符串 void decode(char* str) { char* token = strtok(str, " "); while (token != NULL) { if (strcmp(token, "/") == 0) { printf(" "); } else { for (int i = 0; i < 36; i++) { if (strcmp(token, morse_code[i]) == 0) { if (i < 26) { printf("%c", i + 'a'); } else { printf("%c", i - 26 + '0'); } break; } } } token = strtok(NULL, " "); } printf("\n"); } int main() { char input[100]; printf("请输入要编码的字符串:\n"); fgets(input, sizeof(input), stdin); printf("尔斯电码为:\n"); encode(input); printf("请输入要解码的尔斯电码:\n"); fgets(input, sizeof(input), stdin); printf("解码后的字符串为:\n"); decode(input); return 0; } ``` 使用方法: 1. 运行程序后,输入要编码的字符串,按回车键确认。 2. 程序会输出字符串的尔斯电码。 3. 输入要解码的尔斯电码,按回车键确认。 4. 程序会输出解码后的字符串。 注意事项: 1. 输入的字符串长度不能超过100个字符。 2. 输入的字符串只能包含英文、数字和空格。 3. 尔斯电码中,点号(.)用`.`表示,短横线(-)用`-`表示,单词之间用`/`表示。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值