阿斯克码如何转换成2进制(关于中文转换成摩斯电码)
摩尔斯电码(英语:Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。是由美国人艾尔菲德·维尔与萨缪尔·摩尔斯在1836年发明。
摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用0和1两种状态的二进制代码,它的代码包括五种:
点(·):1
划(-):111
字符内部停顿(在字符内的那些点和划之间):0
短停顿(在字符之间):000
中等停顿(在单词之间):0000000
有两种“符号”用来表示字符:点(·)和划(-),或叫“滴”(Dit)和“答”(Dah)。点的长度决定了发报的速度,并且被当作发报时间参考。下面是时间控制的图示:
-- --- ·-· ··· · / -·-· --- -·· ·
M O R S E (空格) C O D E
这里,“-”表示划,“·”表示点。这是上面消息的准确发报时间(=表示有信号,.代表无信号,每个为一个点的长度):
===.===...===.===.===...=.===.=...=.=.=...=.......===.=.===.=...===.===.===...===.=.=...=
^ ^ ^ ^ ^
| 劃 点 | 单词间隔
点劃间隔 字符间隔
划一般是三个点的长度;点划之间的间隔是一个点的长度;字符之间的间隔是三个点的长度;单词之间的间隔是七个点的长度。
初学者往往被教导发送点划间隔短小、短而快的字符,并且在符号和单词之间夸大间隔时间。比较起来,这种方式更加容易学会。
熟悉摩尔斯码的人之间经常像这样说话或拼写(其中,“长音 / Dah”是发“awe”的音):
-- --- ·-· ··· · / -·-· --- -·· ·
DahDah DahDahDah DiDahDit DiDiDit Dit, DahDiDahDit DahDahDah DahDiDi Di.
以上介绍均来自维基百科
下面我们用代码来实现这个转换的功能:
新建一个map集合,将摩斯电码的规则添加进去(具体的参照上面的摩斯电码规则图),部分截图如下:
然后创建这个实例化对象,并对其进行初始化,方便验证输入无误:
加密方法如下:
解密方法如下:
这样我们就功能实现完毕,只需要调用即可。测试:
输入中文:我喜欢勒布朗.詹姆斯
转换失败,因为摩斯电码不支持中文。也是上面的初始化验证方法起效果。
输入英文: I love lebron James
这个转换成功。
下面实现中文和二进制的互转功能,这个比较简单,直接展示代码部分了:
二进制转换成中文:
中文转换成二进制:
测试如下:
测试成功。
话说人得有多无聊才会研究这个啊,哈哈。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com