读书人

C# ?CRC校验值的计算解决思路

发布时间: 2012-02-24 16:30:38 作者: rapoo

C# ?CRC校验值的计算
求~~~?
用C#.net编写的"CRC校验值的计算"的代码....

多谢多谢

[解决办法]
使用SharpZipLib的CRC校验。开源的
[解决办法]
这个下载只有单个C#文件,能处理CRC1到CRC32。我自己没用过。
http://www.coders4fun.com/wp-content/plugins/wp-downloadMonitor/download.php?id=2

[解决办法]
网上应该有下载的
[解决办法]

C# code
uint gen_crc(byte[] frame){    int frame_len = frame.Length;    byte c;    uint treat, bcrc;    uint wcrc = 0;    for (int i = 0; i < frame_len; i++)    {        c = frame[i];        for (int j = 0; j < 8; j++)        {            treat = c & 0x80U;            c <<= 1;            bcrc = (wcrc >> 8) & 0x80;            wcrc <<= 1;            if (treat != bcrc)            {                wcrc ^= 0x1021;            }        }    }    return wcrc;}
[解决办法]


02 30 31 30 32 34 38 31 4D E5 03

分析一下,是这段“30 31 30 32 34 38 31”运算后才是“4D E5”

类型该换成unsigned short
C/C++ code
unsigned short gen_crc(BYTE far *frame, short frame_len){        BYTE c, treat, bcrc;        unsigned short wcrc = 0;        short i, j;        for (i = 0; i < frame_len; i++)        {                c = frame[i];                for (j = 0; j  < 8; j++)                {                        treat = c & 0x80;                        c  <<= 1;                        bcrc = (wcrc >> 8) & 0x80;                        wcrc  <<= 1;                        if (treat != bcrc)                                wcrc ^= 0x1021;                }        }        return wcrc;} 

读书人网 >C#

热点推荐