Форум: "Начинающим";
Текущий архив: 2017.03.19;
Скачать: [xml.tar.bz2];
ВнизПосчитать 32-bit CRC Найти похожие ветки [V.42 МККТТ]
← →
Платинум (2015-07-11 03:29) [0]Есть массив байт. Необходимо вычислить 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 10:49) [1]Покажи какой вариант кода не работает, и кстати, что за программа?
← →
DVM © (2015-07-11 11:19) [2]
> Платинум (11.07.15 03:29)
https://yadi.sk/d/PQG-3pQWhoQdE
Тут смотри, твой полином $EDB88320
← →
Rouse_ © (2015-07-11 15:51) [3]
> DVM © (11.07.15 11:19) [2]
> Тут смотри, твой полином $EDB88320
А, так этож POSIX, тогда автору нужно учитывать реверсирование после рассчета:unsigned reverse(unsigned x) {
x = ((x & 0x55555555) << 1) | ((x >> 1) & 0x55555555);
x = ((x & 0x33333333) << 2) | ((x >> 2) & 0x33333333);
x = ((x & 0x0F0F0F0F) << 4) | ((x >> 4) & 0x0F0F0F0F);
x = (x << 24) | ((x & 0xFF00) << 8) |
((x >> 8) & 0xFF00) | (x >> 24);
return x;
}
← →
Rouse_ © (2015-07-11 16:32) [4]
> DVM © (11.07.15 11:19) [2]
Дима - зараза, ты у меня шапку модуля свистнул, это я ее в таком виде первый стал делать :)))
← →
DVM © (2015-07-11 19:33) [5]
> Rouse_ © (11.07.15 16:32) [4]
Так и есть :)
← →
Rouse_ © (2015-07-11 20:34) [6]Я просто скачал, смотрю - шапка моя.
Читаю - код не мой, думаю что за фигня :)
← →
DVM © (2015-07-11 20:41) [7]
> Rouse_ © (11.07.15 20:34) [6]
Да я этот вид шапки перенял у тебя уже лет 5-7 назад, просто понравилась на тот момент, а теперь она уже автоматом вставляется CnPack при создании модуля.
← →
Rouse_ © (2015-07-11 21:22) [8]Да не вопрос, действительно удобная, просто не привычно :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2017.03.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.001 c