#牛客在线求职答疑中心# 要发送的数据为 10110011。采用CRC生成的多项 式是_P(X)=X4 +1。请计算 添加在数据后面 的 余数。
全部评论
CRC(循环冗余校验)是一种用于检测数据传输或存储中的错误的技术。在计算CRC余数时,首先需要确定生成多项式的度数,这里给出的生成多项式是 \( P(X) = X^4 + 1 \),即多项式的度数为4。
计算步骤如下:
1. 首先将数据位串(10110011)后面添加4个0(因为生成多项式的度数是4),得到新的位串:101100110000。
2. 将这个新的位串除以生成多项式的位串(在这里是10001,因为 \( X^4 + 1 \) 对应的二进制位串是10001)。
3. 进行模2除法(不进行进位),就像做二进制除法一样。
下面是计算过程:
```
101100110000
÷ 10001
```
- 将10110011与10001对齐,从最高位开始,即:
```
1011
10001
```
我们看到1011小于10001,所以我们在1011后面加一个0,变成10110,再次进行对比。
- 然后进行模2减法(即异或操作):
```
10110011
10001
--------
00111011 (模2减法结果)
```
- 将结果向左移一位,丢弃最左边的0,得到011101,再次与10001对比:
```
0111
10001
```
再次,0111小于10001,我们在后面加一个0,变成01110。
- 进行模2减法:
```
0111011
10001
--------
1011011 (模2减法结果)
```
- 继续这个过程,直到我们处理完所有的位:
```
1011011
10001
--------
0011101 (模2减法结果)
0011101
10001
--------
011111 (模2减法结果)
011111
10001
--------
10011 (模2减法结果)
10011
10001
--------
00010 (模2减法结果)
```
最后得到的余数是00010。这就是添加在原始数据后面的CRC余数。因此,完整的CRC编码数据将是原始数据后跟上这个余数:1011001100010。

计算步骤
数据扩展:
将数据 10110011 后面添加 4 个 0,因为生成多项式的最高次项是 4。
扩展后的数据为 101100110000。
二进制除法:
使用生成多项式 10001 对扩展后的数据 101100110000 进行二进制除法。
逐位异或运算:
从最高位开始,如果当前位是 1,则用生成多项式进行异或运算;如果是 0,则跳过当前位。
具体计算过程:
101100110000
10001
-------
001110110000
00000
-------
01110110000
00000
-------
1110110000
10001
-------
1100110000
10001
-------
1000110000
10001
-------
0000010000
00000
-------
000010000
00000
-------
00010000
00000
-------
0010000
00000
-------
010000
00000
-------
10000
10001
-------
00001
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享

点赞 评论 收藏
分享

点赞 评论 收藏
分享