ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 апреля
800819 Топик полностью
Oman (09.12.2017 13:43 - 13:54, просмотров: 184) ответил Vit на не то.
так это же почти из первого св-ва следует и методов рассчета. запишем так: crc(0xFFFF, 12 34 56 aa bb cc 23 45) = 2B9D (0xFFFF - это стартовое значение crc) так как crc выполняется последовательно, то crc(0xFFFF, 12 34 56 aa bb cc 23 45) = crc ( crc(0xFFFF, 12 34 56), aa bb cc 23 45) смотрим https://en.wikiped …lic_redundancy_checks, пунктик The shift register may be initialized with ones instead of zeroes. Т.е. получаем {\displaystyle M(x)\cdot x^{n}+\sum _{i=m}^{m+n-1}x^{i}=Q(x)\cdot G(x)+R(x)} M(x) \cdot x^n + \sum_{i=m}^{m+n-1} x^i = Q(x) \cdot G(x) + R (x) (таже самая формула, что и по ссылке, не знаю как отобразится) где у нас M(x)*x^n - исходные данные (в нашем случае aa bb cc 23 45), а второе слагаемое - это crc(0xFFFF, 12 34 56)2^m, где m - длина M(x) так как M(x)*x^n mod G(x) = 0, т.к. M(x) содержит в конце свой CRC16, то на резултирующий вариант crc влияет только второе слагаемое и длина m. во втором случае аналогично Т.е. если у нас в crc встроен уже пакет сrc, то влияние оказывает только его длина (у пакетов со встроенным пакетом одинаковой длины crc будет одинакова ).