摩爾斯電碼(英語: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
這個轉換成功。
下面實現中文和二進制的互轉功能,這個比較簡單,直接展示代碼部分了:
二進制轉換成中文:
中文轉換成二進制:
測試如下:
測試成功。
話說人得有多無聊才會研究這個啊,哈哈。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!