【发布时间】:2010-12-24 17:54:10
【问题描述】:
我正在解析二进制文件,并且必须实施 CRC 算法以确保文件没有损坏。问题是,当使用较大的数字时,我似乎无法让二进制数学工作。
我正在尝试的示例:
BigInteger G = new BigInteger("11001", 2);
BigInteger M = new BigInteger("1110010000", 2);
BigInteger R = M.remainder(G);
我期待:R = "0101"
但我得到:R = "1100"
我假设 0101 的其余部分是正确的,因为它是在本书中提供给我的,我用作 CRC 算法的参考(它不是基于 Java 的),但我似乎无法让它工作。我可以进行手动解决的小型二进制计算,但不能进行较大的二进制计算。我承认我还没有手工完成较大的工作,这是我的下一步,但我想看看是否有人能指出我的代码中存在的明显缺陷。
谁能确认或否认我的方法是正确的?
谢谢
【问题讨论】: