以下是我已经知道的关于这些的事情:
-
汉明码既可用于检测和纠正错误,而在CRC中只能检测错误。
-
CRC用于通信,而汉明码用于检测内存磁盘中的错误
我的主要问题是使用一种代码比另一种代码有什么优势?
明用于检测和校正固定长度的数据,而CRC适用于任何长度的数据。
这将取决于您的应用程序,但正如您所指出的,两者是完全不同。 我会考虑的主要区别是每个都需要开销。
对于简单的 (7,4) 汉明码,您将在以便能够每 4 位更正一个错误。因此,如果您要发送或存储 1000 字节的消息,则必须真正发送/存储 1750 字节。 这是很大的开销!
对于 CRC,您将在大量数据上累积单个结果为了检测数据中的某处是否存在错误。 你不需要要确切地说出它在哪里,只是有些不对劲。 为此,您可以在您的消息上累积 32 位 CRC 并且做得很好。因此,对于我们的 1000 字节消息,您实际上是在发送/存储 1004 字节。如果您只需要检测问题,这将非常有效。