Код:unsigned short owenCRC16(unsigned char* packet, size_t length) { size_t i, j; unsigned short crc; assert(packet); crc = 0; for (i = 0; i < length; ++i) { unsigned char b = packet[i]; for (j = 0; j < 8; ++j, b <<= 1) { if ((b ^ (crc >> 8)) & 0x80) { crc <<= 1; crc ^= 0x8F57; } else crc <<= 1; } } return crc; }
http://www.owen.ru/forum/showthread....F1%F3%EC%EC%E0