Как использовать повышение:: crc?

Я хочу использовать повышение:: crc так, чтобы это работало точно как crc32 PHP () функция. Я пытался читать ужасную документацию и много головных болей позже, я не сделал успехов.

По-видимому, я должен сделать что-то как:

int GetCrc32(const string& my_string) {
    return crc_32 = boost::crc(my_string.c_str(), my_string.length());
}

bits должен быть 32.. То, что другие вещи, является тайной. Немного справки?;)

37
задан Thomas Bonini 4 April 2010 в 06:06
поделиться

5 ответов

Dan Story и ergosys дали хорошие ответы (видимо, я искал не в том месте, вот почему головные боли), но пока я занимаюсь этим, я хотел предоставить решение для копирования и вставки функции из моего вопроса для будущих гуглеров:

int GetCrc32(const string& my_string) {
    boost::crc_32_type result;
    result.process_bytes(my_string.data(), my_string.length());
    return result.checksum();
}
58
ответ дан 27 November 2019 в 04:29
поделиться

Вы, вероятно, захотите использовать crc_32_type вместо использования шаблона crc. Шаблон является общим и предназначен для размещения широкого диапазона конструкций CRC с использованием самых разных параметров, но они поставляют четыре встроенных предварительно настроенных типа CRC для общего использования, охватывающих CRC16, CCITT, XMODEM и CRC32.

9
ответ дан 27 November 2019 в 04:29
поделиться

Пробовали ли вы использовать предопределенный crc_32_type?

4
ответ дан 27 November 2019 в 04:29
поделиться

На этой странице найдите конкретный 32-битный CRC, который вам нужен, считайте все остальные параметры: http://regregex.bbcmicro.net/crc-catalogue.htm

4
ответ дан 27 November 2019 в 04:29
поделиться

Библиотека включает предварительно определенные механизмы CRC. Думаю, вам нужен crc_32_type. См. Этот пример: http://www.boost.org/doc/libs/1_37_0/libs/crc/crc_example.cpp

5
ответ дан 27 November 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: