Форум программистов, компьютерный форум CyberForum.ru

Алгоритм вычисления CRC-8 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести только те слова сообщения, которые встречаются в нем ровно один раз http://www.cyberforum.ru/cpp-beginners/thread1099129.html
Дано осмысленное текстовое сообщение (т.е. алфавитно-цифровая информация, разделенная пробелами и знаками препинани, в конце которого ставится точка): Вывести только те слова сообщения, которые встречаются в нем ровно один раз. Помогите с кодом.
C++ Чтение и сравнение символов из файла без использования массива Здравствуйте, подскажите, как можно реализовать посимвольное чтение 2-х (3-х) файлов, при котором символ из 1-го файла сравнивается с символом из 2-го, не используя массивы. http://www.cyberforum.ru/cpp-beginners/thread1099124.html
C++ Создать вектор, содержащий несколько объектов типа данной структуры
Здравствуйте, прошу помощи в создании вектора структур, т.е вот структура : struct MemoryBlock { size_t offset; size_t size; }; и мне надо создать вектор содержащий несколько объектов типа данной структуры, т.е :
C++ В одномерном массиве, состоящем из n вещественных элементов, вычислить количество отрицательных элементов массива
1)количество отрицательных элементов массива; 2)сумму модулей элементов массива, расположенных после минимального по модулю элемента. Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию. подскажите пожалуйста как делать:))
C++ error LNK2019: ссылка на неразрешенный внешний символ. Maya API http://www.cyberforum.ru/cpp-beginners/thread1099081.html
Всем привет, есть ошибка с которой никак не получается справится. Код верен с уверенностью на 99%. Ругается всего на одну строчку определенного класса, библиотеки все подключены. Попробовал код с офф сайта с примером это же класса, тоже самое. В чем может быть причина? На что ошибка: MTime startFrame; startFrame = MAnimControl::minTime(); Ошибка моего кода:
C++ Усовершенствование кода Добрый вечер форумчане. Только вхожу в C++ и объектно-ориентированное программирование на нём, хочется учиться сразу писать правильно. В общем накатал следующее: два класса, книга(Book) и библиотека(Library). Библиотека инициализируется 10-ю книгами, нужно было предусмотреть возможность поиска по полю и сортировку. Хотелось бы услышать советов по улучшению кода (без сильных извращений) и... подробнее

Показать сообщение отдельно
DrOffset
6856 / 4067 / 927
Регистрация: 30.01.2014
Сообщений: 6,863
17.02.2014, 23:38     Алгоритм вычисления CRC-8
Цитата Сообщение от VladimirU Посмотреть сообщение
Можно ли этот способ применить для вычисления crc8.?
Не очень это похоже на crc. Может быть не весь код приведен, но пока мимо.
Я бы предложил вот такое решение:
C++
1
2
3
4
5
6
7
uint8_t crc8(const uint8_t (&table)[256], uint8_t *pdata, size_t nbytes, uint8_t crc)
{
    while (nbytes-- > 0)
        crc = table[(crc ^ *pdata++) & 0xff];
 
    return crc;
}
где pdata, nbytes входная последовательность и ее размер
crc - начальное значение (например 0xFF)
table - таблица crc8 рассчитанная по одному из полиномов (см. теорию)
CRC8_TABLE_SIZE = 256

Таблицу можно найти в инете или сгенерировать самому.
Пример функции генерации таблицы (MSB вариант):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void crc8_generate_table(uint8_t (&table)[CRC8_TABLE_SIZE], uint8_t poly)
{
    const uint8_t msbit = 0x80;
    table[0] = 0;
 
    uint8_t t = msbit;
    for (int i = 1; i < CRC8_TABLE_SIZE; i *= 2)
    {
        t = (t << 1) ^ (t & msbit ? poly: 0);
        for (int j = 0; j < i; ++j)
            table[i+j] = table[j] ^ t;
    }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru