crc.c 代码语言:javascript 代码运行次数:0 运行 AI代码解释 /* *一口Linux *2021.6.21 *version: 1.0.0 */ #include "crc.h" #include <stdio.h> typedef enum { REF_4BIT = 4, REF_5BIT = 5, REF_6BIT = 6, REF_7BIT = 7, REF_8BIT = 8, RE
(2)在要发送的数据(m位)后面加上K-1位0,然后将这个新数(M+K-1位)以模2除法的方式除以上面这个标准除数,所得到的余数也就是该数据的CRC校验码(注:余数必须比除数少且只少一位,不够就补0) (3)将这个校验码附在原m位数据后面,构成新的M+K-1位数据,发送给接收端。 (4)接收端将接收到的数据除以标准...
CRC_Test crc4_ITU = { { 4, 0x03, 0x00, true, true, 0x00 }, { 0x0f, 0x0a, 0x0e } }; CRC_Test crc5_EPC = { { 5, 0x09, 0x09, false, false, 0x00 }, { 0x00, 0x0c, 0x17 } }; CRC_Test crc5_ITU = { { 5, 0x15, 0x00, true, true, 0x00 }, { 0x16, 0...
0x2c, 0x6d, 0x33, 0xd1, 0x8f, 0x0c, 0x52, 0xb0, 0xee, 0x32, 0x6c, 0x8e, 0xd0, 0x53, 0x0d, 0xef, 0xb1, 0xf0, 0xae, 0x4c, 0x12, 0x91, 0xcf, 0x2d, 0x73, 0xca, 0x94, 0x76, 0x28, 0xab, 0xf5, 0x17, 0x49, 0x08, 0x56, 0xb4, 0xea, 0x69, 0x37,...
a ^ (b ^ c) = (a ^ b) ^c 结合律 2. 模2加法 模2加法相对于普通的算术加法,主要的区别在模2加法,不做进位处理。具体结果如下。0+0 = 0 0+1 = 1 1+1 = 0 1+0 = 1 我们发现模2加法的计算结果,同异或运算结果一模一样。进一步推演,我们会发现,异或运算的5个规律,同样适合于模2加法。这...
一文讲透CRC校验码-附赠C语言实例 一口君最近工作用到CRC校验,顺便整理本篇文章和大家一起研究。 一、CRC概念 1. 什么是CRC? CRC(Cyclic Redundancy Checksum)是一种纠错技术,代表循环冗余校验和。 数据通信领域中最常用的一种差错校验码,其信息字段和校验字段长度可以任意指定,但要求通信双方定义的CRC标准一致。
2. CRC校验的原理及其C代码的工作方式 CRC(循环冗余校验)是一种用于检测数据传输或存储中错误的常用技术。它通过对待传输或存储的数据进行一系列计算,生成一个固定长度的校验值(CRC码),并将其附加到数据后面。接收方可以使用相同的算法对数据进行计算,并与接收到的CRC码进行比较,从而验证数据的完整性。 上述C代码中...
REFIN:true或false,在进行计算之前,原始数据是否翻转,如原始数据:0x34 = 0011 0100,如果REFIN为true,进行翻转之后为0010 1100 = 0x2c REFOUT:true或false,运算完成之后,得到的CRC值是否进行翻转,如计算得到的CRC值:0x97 = 1001 0111,如果REFOUT为true,进行翻转之后为11101001 = 0xE9。
CRC16常见的标准有以下几种,被用在各个规范中,其算法原理基本一致,就是在数据的输入和输出有所差异,下边把这些标准的差异列出,并给出C语言的算法实现。 CRC16_CCITT:多项式x16+x12+x5+1(0x1021),初始值0x0000,低位在前,高位在后,结果与0x0000异或
实现CRC算法的代码示例包括crc.c、crc.h和main.c文件,这些代码通过模2除法运算生成CRC值,确保数据的完整性。在实际应用中,需要注意CRC算法对特定数据流(如00H或FFH)的计算结果可能不一致,从而影响存储空间的初始化状态。总结,CRC校验码作为数据通信领域中的一种重要技术,通过多项式计算保证数据传输...