发送方准备发送的数据为1101 1110 1011,采用CRC校验算法,生成多项式为 G(z) =x^4+x+1,来盛该添加在数据后面的余数。(要求写竖式)
时间: 2024-11-30 15:16:25 浏览: 73
CRC(循环冗余校验)是一种常用的错误检测方法。给定的数据序列是 `1101 1110 1011`,我们需要计算这个数据序列对应的CRC校验码。这里使用的是二进制操作,生成多项式 G(z) = x^4 + x + 1。
首先,将数据序列左移并逐位异或到生成多项式的系数上。由于是二进制,我们将从最高位开始处理:
```
________
|1101 1110 1011|
| ^|
CRC | |
|___________|
初始状态:0 (因为 CRC 初始值通常是全零)
```
步骤如下(从右向左计算,每一步表示异或操作):
1. 第一位(最低有效位):1 XOR 1 = 0
2. 次低位(第二位):0 XOR 0 = 0
3. 再次低位(第三位):1 XOR 0 = 1
4. 最高位(第四位):1 XOR 1 = 0
5. 四次高位:0 XOR 1 = 1
继续左移,每次加新位,并用新的最右边位与生成多项式的对应位置进行异或:
```
________
|1101 1110 1011|
| ^|
CRC | 0|
|___________|
________
|0000 1110 1011|
| ^|
CRC | 1|
|___________|
________
|0000 1001 1011|
| ^|
CRC | 1|
|___________|
________
|0000 0110 1011|
| ^|
CRC | 0|
|___________|
```
最后得到的 CRC 校验码就是 `0110`(如果需要,还可以转换成十六进制为 `6`),即附加到原始数据后的余数。
阅读全文