crc校验

  ushort calc_crc(byte[] str, uint len)
        {
            byte i;
            ushort crc = 0xffff;
            //string+=4;         //从地址位开始计算//
            int num = 4;
            while (len-- != 0)
            {
                for (i = 0x80; i != 0; i /= 2)
                {
                    if ((crc & 0x8000) != 0)
                    {
                        crc *= 2;
                        crc ^= 0x1021;
                    }
                    else crc *= 2;
                    if ((str[num] & i) != 0)
                        crc ^= 0x1021;
                }
                num++;
            }
            return crc;
        }

posted on 2012-10-25 13:33  酒歌  阅读(223)  评论(0编辑  收藏  举报