用qt5.6.3编写CRC-16-CCITT 生成多项式为g(x) = x^16+x^12+x^5+1
时间: 2023-05-22 18:06:07 浏览: 144
我可以为您提供以下的CRC-16-CCITT算法的实现:
```cpp
#include <stdint.h>
uint16_t crc16_ccitt(const uint8_t* data, uint32_t length) {
const uint16_t polynomial = 0x1021;
uint16_t crc = 0xFFFF;
for (uint32_t i = 0; i < length; ++i) {
crc ^= (uint16_t)(data[i]) << 8;
for (uint8_t j = 0; j < 8; ++j) {
crc = crc & 0x8000 ? (crc << 1) ^ polynomial : crc << 1;
}
}
return crc;
}
```
这个实现使用了多项式为0x1021,即g(x) = x^16 + x^12 + x^5 + 1。使用crc16_ccitt函数可以生成数据的CRC-16-CCITT校验值。
阅读全文