【发布时间】:2013-09-06 13:10:44
【问题描述】:
让我们得到一个 m 位消息,其中最后 n 位是 CRC 位。据我所知,为了检查是否正确接收,我们应该用特定的CRC算法的多项式对所有m位进行异或。如果结果全为零,我们可以说没有错误。
这是我的问题:
1) 使用前 (m-n) 位计算 n 个 CRC 位,然后将其与最后 n 位比较收到的消息?这样,如果接收到的和计算出的 n 位相等,我们就可以说没有错误。这种做法是真的吗?
2) 如果是真的,哪个效率更高?
【问题讨论】:
-
m 通常比 n 大几个数量级,因此节省的成本微乎其微。最好使用第一种技术,因为它也是对代码的完整性检查。
-
请问这个健全性检查是如何工作的?而且我从您的评论和其他答案中了解到,“XOR & get all-zeros”方法仅适用于某些 CRC 类型,因为某些算法不会给出全零。
标签: crc