![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 12.03.2019
Сообщений: 432
|
![]()
Здравствуйте ! есть задание написать программу, для подсчёта и проверки контрольной суммы, в тестовом файле по алгоритму :CRC16CCITT, именно по этому алгоритму и желательно без таблицы.
В редакторе сумма считается отлично, но в моей программе, не получается. Контрольная сумма подсчитывается явно не так, как хотелось бы и не совпадает. Должна быть :92BE, а у меня EA8C. Нашёл материал, вроде сделал, всё по прочитанному, но подсчитывает неправильно. Прошу помощи ! Код:
Последний раз редактировалось sergey.serg-72; 09.11.2021 в 23:16. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 02.06.2021
Сообщений: 515
|
![]()
1. Начальное значение обычно берут 0xffff
2. На шаге Код:
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 12.03.2019
Сообщений: 432
|
![]()
Не понял я что то , а разве у меня не
Код:
Код:
Я наверное что то не понял из вашей подсказке. А можете на моём коде, показать где исправить, чтоб наглядней было, а то что то я не до понимаю. Заранее Спасибо ! |
![]() |
![]() |
![]() |
#4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,428
|
![]()
Вбил ваш bin на сайте https://crccalc.com/. Контрольную сумму 0x92BE выдал CRC-16/XMODEM, который отличается от CCITT начальным значением.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 12.03.2019
Сообщений: 432
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,428
|
![]() Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 12.03.2019
Сообщений: 432
|
![]() Цитата:
Файл полностью неправильно подсчитывает заданная : 92BE, а выводит после подсчёта :FF26. Что то неправильно в функции явно. Последний раз редактировалось sergey.serg-72; 10.11.2021 в 21:36. Причина: добавить |
|
![]() |
![]() |
![]() |
#8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,428
|
![]()
Инициализируйте "Result := 0;" и не делайте "crc := swap(crc);". Но такое начальное значение соответствует CRC-16/XMODEM, а не CRC-16/CCITT-FALSE. В HxD, кстати, сумма 26FF.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#9 | |
Форумчанин
Регистрация: 12.03.2019
Сообщений: 432
|
![]() Цитата:
Проблема была в 3 строчках 1) Result:=0; , а не полином 2)for i:=0 to Len -1 do begin цикл 3)if (Result and $8000)<>0 then Result:=(Result shl 1) xor $1021 добавлен полином 1021 Значит в интернете пример неправильный был. Сейчас позвонил сокурснику , сказал что это алгоритм CRC-16/XMODEM, а не CRC-16/CCITT. Что непонятка выходит... Он подтвердил что именно CRC-16/CCITT., в его редакторе тоже так идёт. BDA , если Вам не трудно, покажите как реализовать CRC16/CCITT, как правильно этот алгоритм сделать. Если вдруг преподаватель даст опять, чтоб быть готовым. Там большая разница между CRC-16/XMODEM, и CRC-16/CCITT ? можно из моего кода сделать CRC16/CCITT .За ранее огромное спасибо ! Вот что получилось. Последний раз редактировалось sergey.serg-72; 10.11.2021 в 22:35. |
|
![]() |
![]() |
![]() |
#10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,428
|
![]()
Они отличаются только начальным значением (Спецификации алгоритмов CRC).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Opendialog завис | DimOn4Ik | Общие вопросы Delphi | 12 | 02.11.2018 16:08 |
Реализация суммы в простом варианте. | Mariolka | PHP | 8 | 10.11.2016 15:50 |
С++ сортировка в текстовом файле. (Задание на курсовик никак не получается) | Evg888 | Помощь студентам | 1 | 02.06.2012 19:37 |
Житейская задачка о простом копировании | mephist | Помощь студентам | 11 | 16.05.2009 20:42 |