永发信息网

你好,求教crc校验

答案:3  悬赏:60  手机版
解决时间 2021-03-04 17:02
大神,知道里麻烦回答下,好让我采纳你的答案
最佳答案
CRC16 8005代码。


#define  CRC_16_POLYNOMIALS (0x8005)    // CRC16校验生成多项式
unsigned short calcByte(int crc, char b)
{
    int i;
    crc = crc ^ (int)b << 8;


    for ( i = 0; i < 8; i++)
    {
        if ((crc & 0x8000) == 0x8000)
        {
            crc = crc << 1 ^ CRC_16_POLYNOMIALS;
        }
        else
        {
            crc = crc << 1;
        }
    }

    return crc & 0xffff;
}


unsigned short CRC16(char *pBuffer, int length)
{
    unsigned short wCRC16=0x0; // 初值
    if ((NULL == pBuffer)||(0 == length))
    {
        return 0;
    }
    for (int i = 0; i < length; i++)
    {
        wCRC16 = calcByte(wCRC16, pBuffer[i]);
    }
    return wCRC16;
}
全部回答
CRC即循环冗余校验码(Cyclic Redundancy Check[1] ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。 工作原理 循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设要发送的信息用多项式C(X)表示,将C(x)左移R位(可表示成C(x)*2R),这样C(x)的右边就会空出R位,这就是校验码的位置。用 C(x)*2R 除以生成多项式G(x)得到的余数就是校验码。 任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010
1、16位crc校验原理与基于plc的算法程序设计:http://www.docin.com/p-240665334.html2、modbus_crc16.rar,下载:http://bbs.gkong.com/archive.aspx?id=2298363、crc校验的原理和实现:http://www.ad.siemens.com.cn/service/answer/solution.aspx?q_id=69622
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
Hyun 是什么意思?
伊春市友好区经度和纬度
微生物之间的关系有种内关系和种间关系。种内
上海期货怎么会有1000元出不了金
衡水这边哪里算命比较好啊,我想去!
他挽救了法国大革命的危局,是法国的骄傲;著
弟加偏旁组词还有交,真加偏旁组词,组成3个不
游戏检测是最低配置 只有cpu 其余都是达到推
打架导致对方轻微伤,对方讹钱
阳谷哪里有卖花种子的,山东阳谷,具体位置
【求 日、人、朱、白 各加一偏旁部首 各组成
做网站的公司要我域名解析的账户密码做什么
中外合资经营企业合营者出资问题?
连续三天低烧,输液,吃药,没用该怎么办?
病历:患者,男性,25岁。以饮酒后左上腹疼痛
推荐资讯
关于中央电视塔海底世界的问题?
LOL第一盘打老是突然蓝屏然后重启
学留学日语多久才可以去日本留学
可以通过酸的化学式来比较酸的酸性强弱吗?注
那些长的差不多的接口,如VGA和COM接口,PS2
国家有规定入学前儿章需体检吗
博山农村商业银行夏家庄信用社在什么地方啊,
怎么弄下有邪恶联盟的尤里复仇
阳阳麻辣烫地址在什么地方,想过去办事
不锈钢酸洗钝化膏储藏需要什么条件
西班牙语中 cómo 和qué tal可以相互替代,
步步高家教机死机怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?