CRC-16校验 (crc16)
CRC-16 循环冗余校验,采用 CRC-16/XMODEM 算法标准。可链式调用:将上一次的 CRC 输出作为下一次的初始值。
算法参数
| 参数 | 值 |
|---|---|
| 名称 | CRC-16/XMODEM |
| 多项式 | 0x1021 (x¹⁶ + x¹² + x⁵ + 1) |
| 初始值 | 0x0000 |
| 反转输入 | 否 |
| 反转输出 | 否 |
| 最终异或 | 0x0000 |
| 校验值 | "123456789" → 0x31C3 |
API
uint16_t crc16_sum(uint16_t crc, const uint8_t * buf, int len);
crc— 初始值,首次调用通常传0buf— 数据缓冲区len— 数据长度
返回 CRC-16 校验值。