摩斯密碼(Morse code) C#實現

來源:互聯網
上載者:User
摩爾斯電碼(又譯為摩斯密碼,Morse code)是一種時通時斷的訊號代碼,通過不同的排列順序來表達不同的英文字母、數字和標點符號。它由美國人艾爾菲德·維爾於1837年發明。 摩爾斯電碼是一種早期的數字化通訊形式,但是它不同於現代只使用零和一兩種狀態的二進位代碼,它的程式碼封裝括五種: 點、劃、點和劃之間的停頓、每個字元間短的停頓(在點和劃之間)、每個詞之間中等的停頓以及句子之間長的停頓。

注意只可以使用英文/數字等ASCII編碼127界限符中的內容並

不支援Unicode不過你可以自己修改一部分用於支援Unicode

範例程式碼:

public static class MorseCode // 摩爾斯電碼(星際穿越)     {            private static volatile string[,] CodeTable =          {             {"A",".-"},             {"B","-..."},             {"C","-.-."},             {"D","-.."},             {"E","."},             {"E","..-.."},             {"F","..-."},             {"G","--."},             {"H","...."},             {"I",".."},             {"J",".---"},             {"K","-.-"},             {"L",".-.."},             {"M","--"},             {"N","-."},             {"O","---"},             {"P",".--."},             {"Q","--.-"},             {"R",".-."},             {"S","..."},             {"T","-"},             {"U","..-"},             {"V","...-"},             {"W",".--"},             {"X","-..-"},             {"Y","-.--"},             {"Z","--.."},             {"0","-----"},             {"1",".----"},             {"2","..---"},             {"3","...--"},             {"4","....-"},             {"5","....."},             {"6","-...."},             {"7","--..."},             {"8","---.."},             {"9","----."},             {".",".-.-.-"},             {",","--..--"},             {":","---..."},             {"?","..--.."},             {"\'",".----."},             {"-","-....-"},             {"/","-..-."},             {"(","-.--."},             {")","-.--.-"},             {"\"",".-..-."},             {"=","-...-"},             {"+",".-.-."},             {"*","-..-"},             {"@",".--.-."},             {"{UNDERSTOOD}","...-."},             {"{ERROR}","........"},             {"{INVITATION TO TRANSMIT}","-.-"},             {"{WAIT}",".-..."},             {"{END OF WORK}","...-.-"},             {"{STARTING SIGNAL}","-.-.-"},             {" ","\u2423"}         };                  public static string Enc(string str)         {             int i;             string ret = string.Empty;             if (str != null && (str = str.ToUpper()).Length > 0)                 foreach (char asc in str)                     if ((i = Find(asc.ToString(), 0)) > -1)                         ret += " " + CodeTable[i, 1];             return ret;         }                  public static string Dec(string str)         {             int i;             string[] splits;             string ret = string.Empty;             if (str != null && (splits = str.Split(' ')).Length > 0)             {                 foreach (string split in splits)                     if ((i = Find(split, 1)) > -1)                         ret += CodeTable[i, 0];                 return ret;             }             return "{#}";         }                  private static int Find(string str, int cols)         {             int i = 0, len = CodeTable.Length / 2; // len / rank             while (i < len)             {                 if (CodeTable[i, cols] == str)                     return i;                 i++;             };             return -1;         }     }

使用代碼:

string encry = MorseCode.Enc("China"); // 把China換成摩爾斯電碼  string decry = MorseCode.Dec(encry); //把encry換成明文形式
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.