Вопрос

Существует ли библиотека CRC, которая позволяет пользователю не только обнаруживать ошибки, но и исправлять их?Я ищу библиотеку C/C++ или Java, в идеале с открытым исходным кодом.

Это было полезно?

Решение

я полагаю, что CRC может только обнаруживать ошибки, но не исправлять их.Это, безусловно, верно для наиболее распространенной реализации.Вы хотите какой-то исправление ошибки техника, а не CRC.Мне неизвестны какие-либо библиотеки для этого, но их должно быть достаточно легко найти, если вы знаете, что ищете.

Другие советы

Вам нужен не CRC, а FEC (упреждающее исправление ошибок).Вы можете найти реализацию с открытым исходным кодом в libfec.

Лучшее техническое решение по исправлению ошибок называется турбокодом.Видеть http://en.wikipedia.org/wiki/Turbo_code для получения дополнительной информации об этом.

Но я боюсь, что вы не найдете много бесплатных реализаций.

Если вам действительно нужен бесплатный, попробуйте http://rscode.sourceforge.net/

В отношении следующего:Я считаю, что CRC могут только обнаруживать ошибки, но не исправлять их.

Автор дезинформирован.CRC МОГУТ использоваться для исправления однобитовых ошибок.Журнал пользователей C/C++ – июнь 2003 г. – стр. 6.

http://www.drdobbs.com/an-algorithm-for-error-correcting-cyclic/184401662?queryText=Bill%2BMcDaniel

Я не думаю, что CRC часто используется для исправления ошибок, однако, если вы хотите проверить и восстановить наборы файлов, вы всегда можете попробовать par2, который часто используется в Usenet.В Интернете можно найти множество документации и реализаций, например библиотека win32.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top