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

Реализация crc - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Апроксимация линейной функции С++ http://www.cyberforum.ru/cpp-beginners/thread607775.html
люи помогите кто знает этот метод,и как его реализовать в с++
C++ Программирование ландшафта Посоветуйте книги/статьи, где рассказано о программировании ландшафта (желательно с 0 и с примерами на C++). http://www.cyberforum.ru/cpp-beginners/thread607766.html
<Template>. Ошибка компиляции C++
Пытаюсь сделать Темплате Array, который бы принимал класс Point. Объект класса Point состоит из 2х точек координаты x и y. Мне надо создавать объект динамически по заданию. Компилятор выдает след...
C++ Объясните пожалуйста что делает функция
и если это какая то формула, то можно ссылку на неё int letterFromNumber(int number, int index, int n) { int num = number / (int)pow((double)n,index); return num % n; }
C++ inline функции vs инструкции inline функций http://www.cyberforum.ru/cpp-beginners/thread607722.html
Здравствуйте. Чтобы не писать повторно код, нужно использовать функции. Но если функции компактные, то их лучше делать inline функциями, т. к. inline функции быстрее обычных. Но как я понимаю, inline...
C++ Различие глобальной и глобальной статической переменной у нас есть заголовочный файл со стражами, допустим global.h , его используют несколько других хейдеров и с++ файлов . когда там описаны переменные без оператора static линковщик выдаёт ошибку что это... подробнее

Показать сообщение отдельно
ntny
7 / 7 / 0
Регистрация: 17.06.2012
Сообщений: 168

Реализация crc - C++

17.06.2012, 16:50. Просмотров 7058. Ответов 9
Метки (Все метки)

Здравствуйте.
Пытаюсь написать алгоритм
Используя полимональную арифметику.

Опишу алогритм как понимаю..
Считываю исходный двоичный файл по одному байту в переменную unsigned int message..
Исходное значение срс задаю нулевым. unsigned int crc = 0;
Насколько я понимаю для байта проще всего использовать 8-и разрядный полином.

C++
1
2
3
4
5
6
7
8
9
10
data = message; переменную использую для проверки старшего бита
while(!EOF) // считываю файл до конца
{ 
if(data & 128) //Проверяю старший бит
 crc^ = ((message << 1)^Polynom); //Сдвигаю считанное сообщение на 1 бит делаю xor с полиномом(полином использую без старшего бита).
data = crc;
else 
message << 1;
data = message;
}
Не понятно следующее.
http://ru.wikipedia.org/wiki/Crc
Во первых почему на вики в алгоритме срс инициализирует значением в 255.
Смотрю "Пример программы расчёта CRC8 на языке"
C++
1
2
3
4
5
6
unsigned char crc = 0xFF;
    unsigned int i;
 
    while (len--)
    {
        crc ^= *pcBlock++;
объясните пожалуйста смысл этого кода.
Насколько я понимаю по указателю содержится считываемый байт.
В чем смысл совершать с ним хор по 0xFF если это не полином?

Заранее извиняюсь за глупые вопросы(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru