600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【校验码 - 循环冗余校验码CRC】

【校验码 - 循环冗余校验码CRC】

时间:2020-04-12 09:11:02

相关推荐

【校验码 - 循环冗余校验码CRC】

水善利万物而不争,处众人之所恶,故几于道💦

目录

循环冗余校验码

  1.多项式

  2.CRC编码的组成

  3.校验码的生成

  4.例题:

循环冗余校验码

广泛地在网络通信及磁盘存储时采用。

1.多项式

在循环冗余校验(CRC)码中,无一例外地要提到多项式的概念。一个二进制数可以以一个多项式来表示。如1011表示为多项式X 3+X 1+X 0,如果把这里的x替换为2,这个多项式的值就是该数的值。从这个转换可以看出多项式最高幂次为R则转换为二进制数有R+1位。

2.CRC编码的组成

CRC编码的组成是由K位信息码,加上R位的校验码。

3.校验码的生成

校验码的生成步骤如下:

(1) 将K位数据C(x)左移R位,给校验位留下空间,得到移位后的多项式为C(x)×XR(×这个不是乘号,代表连接)。

(2) 将移位后的信息多项式除以生成多项式所对应的二进制数(也就是和生成多项式进行模2运算-异或),得到R位的余数多项式。

(3) 将余数作为校验码嵌入信息位左移后的空间。

4.例题:

信息位为 1010 0110,生成多项式为:a(x)=X5+X4+X+1,则CRC码为:

解题步骤:

①将信息码左移R位,R是生成多项式的最高次幂。

②将最高次幂为R的生成多项式G(X)转换为R+1位的二进制数

③将移位后的信息码除以②中生成的二进制数(这里的除是进行异或运算),得到R位的余数

④将余数作为校验码拼接到信息码左移后空出的位置,得出完整的CRC码

答:

①生成多项式的最高次幂是5,所以将信息码左移5位:

 1010 0110 0000 0

②将生成多项式转换为5+1位二进制数为:

 110011

③进行异或运算:

 1010 0110 0000 0

 1100 11

 -----------------------------

0110 10 <----第一次运算结果

  110 1010 0000 0 <----补全结果,剩余位从上面拉下来

  110 011

 -----------------------------

  0001100 0000 0 <----第二次运算结果

  1100 11

 -----------------------------

  11000 <----第三次运算结果

可以看出已经得到了5位余数,11000

④拼接,得出完整的CRC码:

1010 0110 11000

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。