모스 부호 C# 구현

大家讲道理
풀어 주다: 2016-11-10 09:54:12
원래의
5062명이 탐색했습니다.

모스 부호(모스 부호라고도 번역됨, 모스 code)는 ON/OFF되는 신호코드로, 서로 다른 배열을 통해 서로 다른 영문자와 숫자, 문장부호를 표현합니다. 1837년 미국의 알프레드 위어(Alfred Weir)가 발명했습니다. 모스 부호는 디지털 통신의 초기 형태이지만 0과 1의 두 가지 상태만 사용하는 현대 이진 코드와는 다릅니다. 점, 대시, 점과 대시 사이의 일시 정지, 각 문자 사이의 짧은 일시 정지(점과 대시 사이), 각 단어 사이의 중간 일시 정지, 문장 사이의 긴 일시 정지.

모스 부호 C# 구현

영어/숫자 등 ASCII 인코딩 127 구분 기호의 내용만 사용할 수 있으며

은 유니코드를 지원하지 않습니다. 하지만 유니코드를 지원하도록 일부를 직접 수정할 수 있습니다

샘플 코드:

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换成明文形式
로그인 후 복사


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!