c# HexStringtoByte十六進制字符串轉字節與modusCRC校驗


c# HexStringtoByte十六進制字符串轉字節與modusCRC校驗

 public static byte[] hexStrTobyte(string hexString)
        {
            hexString = hexString.Replace(" ", "");
            if ((hexString.Length % 2) != 0)
                hexString += " ";
            byte[] returnBytes = new byte[hexString.Length / 2];
            for (int i = 0; i < returnBytes.Length; i++)
                returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2).Trim(), 16);
            return returnBytes;
        }

  Int32 aa = Cal_CRC_Code(returnBytes,returnBytes.Length);

     public Int32 Cal_CRC_Code(byte[] ucpdata, int len)
        {
             Int32 crc = 0xffff;
            
            byte temp;
            int n;
            int len2 = 0;
            while (len-->0)
            {
                crc = ucpdata[len2] ^ crc;
                for (n = 0; n < 8; n++)
                {
                    Int32 TT;
                    TT = crc & 1;//檢查最低位是否為1
                    crc = crc >> 1;//crc寄存器內容右移一位>>1
                    crc = crc & 0x7fff;//crc寄存器最高位補0,不改變其他位
                    if (TT == 1)
                    {//檢查最低位是否為1
                        crc = crc ^ 0xa001;//與多項式1010 0000 0000 0001相異或
                        crc = crc & 0xffff;//crc碼
                    }
                }
                len2++;
            }

            // return SwapInt32(crc);



            return crc;
        }

 string bb_string = aa.ToString("X2");  //整型轉十六進制


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM