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");  //整型转十六进制

posted @   txwtech  阅读(1238)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2020-02-24 cb43a_c++_STL_算法_删除_(1)remove_remove_if
2020-02-24 cb42a_c++_STL_算法_替换_replace
点击右上角即可分享
微信分享提示