crc16 linux版本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <stdio.h> #include <stdint.h> // CRC-16-CCITT标准的多项式 #define POLY 0x1021 uint16_t crc16(uint16_t crc, const unsigned char *buffer, size_t len) { while (len--) { crc ^= (*buffer++ << 8); for ( int i = 0; i < 8; i++) { if (crc & 0x8000) crc = (crc << 1) ^ POLY; else crc = crc << 1; } } return crc; } int main() { // 示例数据 unsigned char data[] = "Hello, World!" ; size_t data_len = sizeof (data) - 1; // 不包括末尾的 '\0' // 初始化CRC值 uint16_t crc = 0xFFFF; // 通常初始值为0xFFFF // 计算CRC16校验和 crc = crc16(crc, data, data_len); // 打印结果 printf ( "CRC16: 0x%04X\n" , crc); return 0; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2022-06-22 TR-104(tr069协议组中的一员)
2022-06-22 ajax 异步http
2022-06-22 jquery json
2021-06-22 the old straw hat
2020-06-22 保活 std::enable_shared_from_this<Good>
2020-06-22 程序员与作家
2020-06-22 std::thread -pthread