Morsecode (auch übersetzt als Morsecode, Morse Code) ist ein ein- und ausschaltbarer Signalcode, der verschiedene englische Buchstaben, Zahlen und Satzzeichen durch unterschiedliche Anordnungen ausdrückt. Es wurde 1837 vom Amerikaner Alfred Weir erfunden. Morsecode ist eine frühe Form der digitalen Kommunikation, unterscheidet sich jedoch von modernen Binärcodes, die nur zwei Zustände verwenden: Null und Eins. Seine Codes umfassen fünf Typen: Punkte, Striche, Pausen zwischen Punkten und Strichen, kurze Pausen zwischen den einzelnen Zeichen (zwischen Punkten und Strichen), mittlere Pausen zwischen den einzelnen Wörtern und lange Pausen zwischen den Sätzen.
Beachten Sie, dass nur Inhalte in ASCII-Kodierung mit 127 Trennzeichen wie Englisch/Zahlen verwendet werden können und
Unicode nicht unterstützt aber Sie können einen Teil davon selbst ändern, um Unicode zu unterstützen
Beispielcode:
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; } }
Code verwenden:
string encry = MorseCode.Enc("China"); // 把China换成摩尔斯电码 string decry = MorseCode.Dec(encry); //把encry换成明文形式