我見過兩種不同的CRC算法。一種稱爲「直接」,另一種稱爲「非直接」或「間接」。兩者的代碼有點不同。如果直接類型以轉換的初始值提供,兩者都能夠計算相同的校驗和。直接和間接CRC之間的區別
我可以成功運行這兩種算法,我知道如何轉換初始值。所以這是沒有問題的。
我無法找到:爲什麼這兩種算法存在?有人能做別人不能做的事嗎?從用戶的角度來看,它們是多餘的嗎?
UPDATE你可以找到一個可測試的在線實現(和兩個aglorithms的C實現)here。然而,這些術語(或其中之一)在更多地方被提及。像here(「直接表算法」),微控制器參考文獻中,在等論壇
請提供您參考的「直接」和「間接」算法的參考。我已經實施了很多CRC,但我還沒有看到過這些術語。 –
請參閱我的更新。我不確定這些術語是否含糊不清,但很多時候作者都提到初始值需要轉換這一事實,因此這似乎與CRC算法的一個共同特徵有關。 – Silicomancer