Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Посчитать 32-bit CRC [V.42 МККТТ] [D7, WinXP]


Платинум ©   (2015-07-11 03:29:00) 

Есть массив байт. Необходимо вычислить 32-bit CRC:

> polynomial: x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1
> After all the data bytes are processed, the CRC is inverted

Находил примеры всякие, но видимо считает не так как нужно. Программа в которой тоже есть массив и куда я "отправляю" посчитанный Cardinal говорит что это не верно, не соответствует массиву.


Rouse_   (2015-07-11 21:22:00) [1]

Да не вопрос, действительно удобная, просто не привычно :)


DVM   (2015-07-11 20:41:00) [2]


> Rouse_ ©   (11.07.15 20:34) [6]

Да я этот вид шапки перенял у тебя уже лет 5-7 назад, просто понравилась на тот момент, а теперь она уже автоматом вставляется CnPack при создании модуля.


Rouse_   (2015-07-11 20:34:00) [3]

Я просто скачал, смотрю - шапка моя.
Читаю - код не мой, думаю что за фигня :)


DVM   (2015-07-11 19:33:00) [4]


> Rouse_ ©   (11.07.15 16:32) [4]

Так и есть :)


Rouse_   (2015-07-11 16:32:00) [5]


> DVM ©   (11.07.15 11:19) [2]

Дима - зараза, ты у меня шапку модуля свистнул, это я ее в таком виде первый стал делать :)))


Rouse_   (2015-07-11 15:51:00) [6]


> DVM ©   (11.07.15 11:19) [2]
> Тут смотри, твой полином $EDB88320

А, так этож POSIX, тогда автору нужно учитывать реверсирование после рассчета:

unsigned reverse(unsigned x) {
  x = ((x & 0x55555555) >  1) & 0x55555555);
  x = ((x & 0x33333333) >  2) & 0x33333333);
  x = ((x & 0x0F0F0F0F) >  4) & 0x0F0F0F0F);
  x = (x 8) & 0xFF00) | (x >> 24);
  return x;
}


DVM   (2015-07-11 11:19:00) [7]


> Платинум   (11.07.15 03:29) 

https://yadi.sk/d/PQG-3pQWhoQdE

Тут смотри, твой полином $EDB88320


Rouse_   (2015-07-11 10:49:00) [8]

Покажи какой вариант кода не работает, и кстати, что за программа?


Наверх

Титульная страница Поиск, карта сайта Написать письмо