| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > CRC |
| Автор: hawk3500 17.6.2011, 19:22 | ||
| Здравствуйте. Подскажит кто знает, правильно ли я сделал алгоритм подсчёта CRC16. Алгоритм предполагает универсальность-т.е.полином задаёт пользователь.
Т.е. для полинома x16 + x15 + x2 + 1,надо будет сделать: CRC_16_create_table(0x8005); Зарранее благодарен, с уважением Hawk. |
| Автор: fish9370 17.6.2011, 21:10 | ||
| а что такое полином? это математический термин? как я понимаю CRC16 - это подсчет контрольной суммы, 16-разрядных слов как например вычисление контрольной суммы IP заголовка:
и что это у тебя за такие типы данных? они несколько нестандартные.. |
| Автор: bsa 17.6.2011, 21:37 |
| hawk3500, то, что ты сделал - это не функция расчет CRC, а функция генерация таблицы для расчета CRC. Вот http://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B8%D0%B7%D0%B1%D1%8B%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4, есть специализированные функции. Тебе необходимо сделать проверочную функцию, и протестировать свою на разных полиномах и наборе случайных чисел. |
| Автор: hawk3500 17.6.2011, 22:31 |
| GetCRC_16 это для получения уже crc. bsa подскажите пожалуйста, а функция расчёта таблицы верная? Да на википедии я смотрел, но универсальности там нет... |
| Автор: afiskon 18.6.2011, 14:39 |
| http://ru.wikipedia.org/wiki/CRC#CRC-16 |
| Автор: hawk3500 18.6.2011, 18:23 |
| ....я в посте уже писал что в википедии я смотрел А вот правильно ли сделан приведённый выше алгоритм.....вот не знаю. Хотелось бы услышать ответ именно на этот вопрос. |
| Автор: bsa 19.6.2011, 21:22 |
| hawk3500, возьми проверь на случайных данных. |