0

有人可以告诉我计算这个CRC码的步骤吗?生成多项式 G(x)=10 数据:110 附加 crc 的消息:110

当数据除以 G(x) 时,余数为 0。这是否意味着 CRC 为 0 或什么都没有,或者这甚至可能吗?

4

1 回答 1

1

除法的完成方式与学校几乎相同:

10|110
   10  (xor)
------
   010
    10  (xor)
-------
     0 <- remainder

唯一的区别是,必须只检查每一行的 msb
以使除数适合部分余数:
附加消息是 1100

要检查 crc,可以再次执行除法:

10|1100
   10    (xor)
-------
    100
    10   (xor)
--------
     00
     10  (no xor)
-------
      0  <-- remainder is 0, so the message is valid

不过有一些可疑的地方:通常crc多项式有一个项 +1,如果最高阶项是 x^2 (例如),那么完整的多项式有 3 个项,其中只有 2 个是传统上明确声明的。那么只有你的多项式实际上是 x^2 + 1 并且将以相反的顺序表示为 1 + 0*x (+ 1* x^2 项省略)然后余数将是两位

101|110
    101
--------
     11  <-- final remainder; concatenated message = 11011

checking message integrity:

101|11011
    101
 --------
     1111
     101
  --------
      101
      101
  --------
       00 <-- checked!
于 2012-10-05T06:41:45.437 回答