【问题标题】:Binary/CRCdivision remainder二进制/CRC除法余数
【发布时间】:2018-03-09 06:57:37
【问题描述】:

我试图创建一个代码来计算 Java 中的 CRC 错误检测/纠正的余数,但我不知道它与二进制除法有什么区别。

时间:

    BigInteger G = new BigInteger("1001", 2);
    BigInteger M = new BigInteger("101110", 2);
    BigInteger R = M.remainder(G);

R 值为:1
但是当我手动计算 CRC 余数时,它将是:011

这里有什么区别,有什么方法或算法可以计算CRC余数吗?

【问题讨论】:

    标签: java binary division crc


    【解决方案1】:

    CRC 的余数是 多项式 除法的余数。您将被除数和除数的位视为Galois Field of two elements (called GF(2)) 上的多项式系数。在那个领域,加法变成异或,乘法变成与。 1+1是0​​,不是2,因为没有2,只有0和1。

    如果你做多项式除法,你应该记得从高中开始,你就会得到答案。只需一些位就可以轻松完成 GF(2):

              101
          --------
    1001 / 101110
           1001
           ------
             1010
             1001
             ----
               11
    

    所以我们得到商101 和余数11

    【讨论】:

      猜你喜欢
      • 2011-02-16
      • 2021-04-28
      • 2010-12-24
      • 2021-05-10
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      相关资源
      最近更新 更多