0

据我了解,要检查其末尾附加 CRC 的数据是否有错误,需要通过相同的 CRC 算法运行它并查看新计算的 CRC 是否为零。

我尝试通过以下方式使用在线 CRC 计算器进行此操作:

  1. 计算 0xAABBDD 的 CRC(没有 0x 部分)- CRC16 输出 0x8992
  2. 计算 0xAABBDD8992 的 CRC - CRC16 输出 0xFB4A,而不是 0x0000

我究竟做错了什么?

4

1 回答 1

1

附加 CRC 仅适用于“纯”CRC,无需预处理和后处理。然而,大多数现实世界的 CRC 都有预处理和后处理,主要是为了使零字符串的 CRC 不为零。

检查 CRC 的方法与任何其他检查值相同。您会收到一条消息,消息字节m c在哪里,并且是检查值。您通过其他渠道(很可能是标准文档)被告知,并带有一些功能描述。要检查 的完整性,请计算并查看是否等于。如果不是,则消息和/或校验值在传输过程中被损坏。如果它们是相等的,那么您可以在一定程度上确保消息毫发无损。保证取决于 的性质、中的位数以及传输信道上可能出现的错误的特征。mcc=f(m)fm cf(m)cfc

于 2014-12-25T21:05:55.027 回答