我解析二進制文件,必須實現CRC算法以確保文件沒有損壞。問題是,我似乎無法在使用更大數字時獲得二進制數學運算。Java:確認方法二進制除法並找到餘數是否正確?
的例子中,我試圖讓工作:
BigInteger G = new BigInteger("11001", 2);
BigInteger M = new BigInteger("1110010000", 2);
BigInteger R = M.remainder(G);
我期待:
R = "0101"
但我得到:
R = "1100"
我假設0101的剩餘部分是正確的,因爲它在本書中用作參考e的CRC算法(它不是基於Java),但我似乎無法得到它的工作。我可以得到一些小的二進制計算,我已經手動解決了這個問題,但不是那些較大的計算。我承認我還沒有用手工處理更大的那個,這是我的下一步,但我想看看是否有人可以指出我的代碼中有一個明顯的缺陷。
任何人都可以確認或否認我的方法是正確的嗎?
謝謝
哇......我不覺得羞怯。 我一直在努力實現這個計劃,只要我認爲我的大腦已經稍微融化了。由於某種原因,我打算在二進制數學中做數學... 無論如何,感謝您的建議。 – rfadams 2009-12-09 08:14:23