Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2012, 15:26   #1
m-s-2005
Новичок
Джуниор
 
Регистрация: 27.11.2007
Сообщений: 1
По умолчанию Вопросы по коду расчёта контрольной суммы

Здравствуйте. Помогите разобраться с небольшой функций расчёта контрольной суммы. То, что мне кажется понятным я закоментировал, там где стоят вопросы - соответственно понять не могу...


Код:
//функция должна возвращать двухбайтовое число (??? почему двухбайтовое, если int - четырёхбайтовое ???)
//на входе массив (указатель на массив) байт с данными и количество байт данных
unsigned int CRC_math (char* pDATA , int nDATA)
{
	unsigned int i; //номер байта в пакете pDATA 
	unsigned int y; //??????
	unsigned int CRC; // результат нашей функции
	unsigned char DATA; //текущий байт из пакета pDATA 
	CRC=0xFFFF; //тут всё понятно
	for (y = 0; y < nDATA; y++) //перебираем все байтики из нашего пакета
	{
		DATA = pDATA [y]; //определяем значение текущего байта из пакета pDATA
		for (i = 8; i > 0; i--) //???????????
		{
			if( (CRC ^ DATA)& 1) //???????????
				CRC = ((CRC^0x4002)>>1) | 0x8000; //???????
			else CRC>>=1; //??????????
			DATA>>=1; ????????????
		}
	}
	return CRC; //тут всё тоже понятно
}
m-s-2005 вне форума Ответить с цитированием
Старый 26.01.2012, 17:19   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1-е. 0xFFFF - это сколько байт по вашему?!
int использован как подходящий целый тип.

2-е. это какая-то упрощённая модификация вычисления CRC-16.
рекомендую почитать про алгоритм на википедии или погуглить.



p.s. в C я совсем не разбираюсь. И сразу приношу свои извинения, если мой пост ничем Вам не помог!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление контрольной суммы Natali1 Помощь студентам 0 21.01.2012 20:24
C++ шифрование контрольной суммы freeeeez Помощь студентам 1 22.05.2011 15:10
Интересный пример для расчёта контрольной суммы. ATAMAN200 Общие вопросы C/C++ 0 05.10.2010 19:17
Помогите с алгоритмом для расчёта контрольной суммы Andrej_Svininykh Общие вопросы по Java, Java SE, Kotlin 0 17.10.2008 21:17