博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
摩尔斯电码(Morse Code)Csharp实现
阅读量:4322 次
发布时间:2019-06-06

本文共 2992 字,大约阅读时间需要 9 分钟。

,在早期的"生产斗争"生活中,扮演了很重要的角色,作为一种信息编码标准,摩尔斯电码拥有其他编码方案无法超越的长久生命。摩尔斯电码在海事通讯中被作为国际标准一直使用到1999年。不过随着科技的发展,最终还是倒在了历史的车轮下(PS:等等,为何这么熟悉??观众:好一片根正苗红的*文啊,啊啊啊啊),1997年,当法国海军停止使用摩尔斯电码时,发送的最后一条消息是:“所有人注意,这是我们在永远沉寂之前最后的一声呐喊!”。

任何关于Morse code可拓展的咨询,请移步维基百科:

说明:本文中Csharp实现Morse code如无特殊说明,仅实现了字母长码版数字,不包括标点符号非英语字符特殊字符。(ps:实际上也可以通过下文所实现的方式去实现,不过是不是有点"呆",谁有更好的办法??!!)

在做事之前,不妨感受一下

参考国际摩尔斯电码数字字母对应表:

 

Morse code集合:  

      ///       /// 组织mores集合      ///我使用了键值对,Dictionary, HashTable都是可以的      ///       Dictionary
morseCode = new Dictionary
() { {
'a' , ".-"},{
'b' , "-..."},{
'c' , "-.-."}, //alpha {
'd' , "-.."},{
'e' , "."},{
'f' , "..-."}, {
'g' , "--."},{
'h' , "...."},{
'i' , ".."}, {
'j' , ".---"},{
'k' , "-.-"},{
'l' , ".-.."}, {
'm' , "--"},{
'n' , "-."},{
'o' , "---"}, {
'p' , ".--."},{
'q' , "--.-"},{
'r' , ".-."}, {
's' , "..."},{
't' , "-"},{
'u' , "..-"}, {
'v' , "...-"},{
'w' , ".--"},{
'x' , "-..-"}, {
'y' , "-.--"},{
'z' , "--.."}, //Numbers {
'0' , "-----"},{
'1' , ".----"},{
'2' , "..----"},{
'3' , "...--"}, {
'4' , "....-"},{
'5' , "....."},{
'6' , "-...."},{
'7' , "--..."}, {
'8' , "---.."},{
'9' , "----."}, };

 加密:

  加密的过程就是把已知的或者说要发送的转为Morse code。本文的例子中增加标识符另作它用,请忽略。  

     ///         /// 加密        ///         /// 命令        /// 
密文
public string WordsTransferToMoresCodes(string value) { string values = ""; if (value.Length < 0) { return values; } foreach (char words in value.ToCharArray()) //拆分字符串为字节数组 { foreach (var dic in morseCode) { if (dic.Key == words) { values += dic.Value +"|"; //"|"为标识码 } } } return values; }

解密:

     ///         /// 解密        ///         /// 密文        /// 
命令
public string MoresCodeTransferToWords(string code) { string keys = ""; if (code.Length < 0) { return keys; } foreach (string codes in code.Split('|')) //拆分密文 { foreach (var dic in morseCode) //遍历mores集合 { if (dic.Value == codes) { keys += dic.Key ; } } } return keys; }

事情进行到这里,基本可以说是杀青了,当然,正如前文所讲,实现的部分不包括标点符号,非英语字符特殊字符,各位可各抒己见。

好,就这样,放学。

TymonYang   May-16 2015

 

转载于:https://www.cnblogs.com/tymonyang/p/4508174.html

你可能感兴趣的文章
结构体指针
查看>>
迭代器
查看>>
Food HDU - 4292 (结点容量 拆点) Dinic
查看>>
Ubuntu安装Sun JDK及如何设置默认java JDK
查看>>
[经典算法] 排列组合-N元素集合的M元素子集
查看>>
Codeforces 279D The Minimum Number of Variables 状压dp
查看>>
打分排序系统漫谈2 - 点赞量?点赞率?! 置信区间!
查看>>
valgrind检测linux程序内存泄露
查看>>
Hadoop以及组件介绍
查看>>
1020 Tree Traversals (25)(25 point(s))
查看>>
第一次作业
查看>>
“==”运算符与equals()
查看>>
单工、半双工和全双工的定义
查看>>
Hdu【线段树】基础题.cpp
查看>>
时钟系统
查看>>
BiTree
查看>>
5个基于HTML5的加载动画推荐
查看>>
水平权限漏洞的修复方案
查看>>
静态链接与动态链接的区别
查看>>
Android 关于悬浮窗权限的问题
查看>>