冗余校验码crc的原理结构简图
时间: 2024-09-11 16:07:59 浏览: 60
lab_07,CRC冗余校验码源码c语言,c语言
冗余校验码(CRC,Cyclic Redundancy Check)是一种根据数据内容计算出一个短的固定位数校验值(即CRC校验码)的方法,主要用于检测数据在传输或存储过程中是否出现错误。其基本原理可以通过以下步骤简述:
1. 选择一个生成多项式G(x),这是一个二进制数,其位数决定了CRC校验码的位数。
2. 将待发送的数据(不含校验码的部分)视为一个长的二进制数D(x),并在其后添加与生成多项式G(x)位数减1相同个数的0(即n个0,n为G(x)的阶数)。这个新的数表示为M'(x)。
3. 使用模2除法将M'(x)除以G(x),得到的余数R(x)即为CRC校验码。如果余数为0,则认为数据没有错误。
4. 将得到的余数R(x)附加到原始数据D(x)的末尾,形成新的数据串,进行传输或存储。
5. 接收方收到数据后,同样使用G(x)对包含校验码的数据串进行模2除法,若余数为0,则说明数据在传输或存储过程中未出错;若余数不为0,则说明数据出现错误。
CRC的原理结构简图大致如下:
```
[数据] --> [添加0] --> [模2除法] --> [生成CRC校验码] --> [附加校验码] --> [传输或存储]
| ^
| |
+--------------------------------+
```
这个简图展示了数据如何通过添加0、模2除法以及生成校验码的过程,最后附加校验码进行传输或存储。
阅读全文