我见过两种不同的CRC算法。一种称为“直接”,另一种称为“非直接”或“间接”。两者的代码有点不同。如果直接类型以转换的初始值提供,两者都能够计算相同的校验和。直接和间接CRC之间的区别
我可以成功运行这两种算法,我知道如何转换初始值。所以这是没有问题的。
我无法找到:为什么这两种算法存在?有人能做别人不能做的事吗?从用户的角度来看,它们是多余的吗?
UPDATE你可以找到一个可测试的在线实现(和两个aglorithms的C实现)here。然而,这些术语(或其中之一)在更多地方被提及。像here(“直接表算法”),微控制器参考文献中,在等论坛
请提供您参考的“直接”和“间接”算法的参考。我已经实施了很多CRC,但我还没有看到过这些术语。 –
请参阅我的更新。我不确定这些术语是否含糊不清,但很多时候作者都提到初始值需要转换这一事实,因此这似乎与CRC算法的一个共同特征有关。 – Silicomancer