CRC8校验算法源码——C语言版

2024-06-17 1388阅读

  本文以CRC8实际代码为例启发各位读者,如何编写一个CRC的校验算法。让各位读者直接跳过繁琐的原理说明阶段,快速应用到工程当中。

CRC8校验算法源码——C语言版
(图片来源网络,侵删)

一、例程介绍

        CRC的校验有很多很多种,掌握以下思路,写任何一个CRC的源生代码都应该没有问题。

   本文使用的示范代码为本人编写,算法为CRC-8-MAXIM,多项式为X^8+X^5+X^4+1,即0x31

初始值为0xFF,结果异或值0x00,输入数据和输出数据均不反转。

1.多项式计算的方法

    有很多人不知道这个0x31是怎么来的,这里为大家计算一下展开的话就是

1*x^8+0*x^7+0*x^6+1*x^5+1*x^4+0*x^3+0*x^2+0*x^1+1*x^0 对应二进制1 0011 0001 即0x131

CRC8校验取低字节,那么多项式的值就是0x31了

1.反转解释

   意思就是将低位变高位,再进行计算

例如:0001 1100 0010 1001 反转后得到的就是 0011 1000 1001 0100

二、代码示例

1.计算法

#include  
unsigned char CRC8_MAXIM(unsigned char *dat,unsigned int len){
    unsigned char  crc_value=0xFF,j; //初始值为0xff,也有很多初始值为0x00的,此处可修改
    unsigned int    i;
        for(i=0;i
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]