crc16计算

crc16计算,以生成式G(x)=x16+x15+x2+1,为例

1、函数如下:

//crc:G(x) = x16+x15+x2+1
#define POLY 0x8005    //对应的生成式的多项式,可以查(在在线计算crc工具下查)
unsigned short crc16_2(unsigned char *data, int len, u16 init) {unsigned short crc = init;		//0xFFFF,0x0000        //初始值for (int i = 0; i < len; i++) {crc ^= (unsigned short)data[i] << 8;for (int j = 0; j < 8; j++) {if (crc & 0x8000) {        //高位/低位在前crc = (crc << 1) ^ POLY;}else {crc <<= 1;}}}return crc;
}

2、使用技巧

当接收的字符比较长时,一次将字符全部接收比较浪费资源,可以分段使用:

    //分段计算
    result = crc16_2(data, 10, 0x0000); // 调用CRC函数计算CRC值
    result = crc16_2(&data[10], length - 10, result); // 调用CRC函数计算CRC值
    printf("crc16_2 分段计算出 value: %X\n", result); // 输出CRC值   

3、附

crc在线计算工具:

CRC在线计算crc在线计算,循环冗余校验在线计算icon-default.png?t=N7T8https://www.lddgo.net/encrypt/crc#toolNoteIframe

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/501363.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Spring Security 简易速速上手小册》第4章 授权与角色管理(2024 最新版)

文章目录 4.1 理解授权4.1.1 基础知识详解授权的核心授权策略方法级安全动态权限检查 4.1.2 主要案例&#xff1a;基于角色的页面访问控制案例 Demo 4.1.3 拓展案例 1&#xff1a;自定义投票策略案例 Demo测试自定义投票策略 4.1.4 拓展案例 2&#xff1a;使用方法级安全进行细…

代码随想录算法训练营第四十七天|198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III。

198. 打家劫舍 题目链接&#xff1a;打家劫舍 题目描述&#xff1a; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷…

光耦合器在电路板上的作用

在不断创新的电子世界中&#xff0c;一个关键组件在确保电子设备无缝运行方面默默地发挥着至关重要的作用&#xff1a;光耦合器。光耦合器经常被普通消费者忽视&#xff0c;它是电路板上的无名英雄&#xff0c;在维护电子系统的完整性和安全性方面发挥着关键作用。 什么是光耦合…

【JS】大文件上传(切片上传)

大文件上传&#xff08;切片上传&#xff09; 切片上传文件切片示例 切片上传 切片上传是指将一个大文件切割为若干个小文件&#xff0c;分为多个请求依次上传&#xff0c;后台再将文件碎片拼接为一个完整的文件&#xff0c;即使某个碎片上传失败&#xff0c;也不会影响其它文…

Springboot项目集成短信验证码(超简单)

操作流程 注册验证码平台创建验证码模版开始集成&#xff08;无需引入第三方库&#xff09; 注册并登陆中昱维信验证码平台 获取AppID和AppKey。 创建验证码模版 创建验证码模版&#xff0c;获取验证码模版id 开始集成 创建controller import org.springframework.web.bi…

mysql学习笔记4——表操作

表的创建 表的删除 在表中插入数据 插入多行数据只插入特定列数据 对插入数据限制约束条件 常用约束条件有&#xff1a; 非空约束&#xff08;not null&#xff09;&#xff1a;约束的字段不能为null 唯一约束&#xff08;unique&#xff09;&#xff1a;约束的字段不能重复…

本地maven库缓存导入私库

为了加速编译代码&#xff0c;想将本地maven缓存导入内网私库使用。 脚本网上搜的 #!/bin/bash # copy and run this script to the root of the repository directory containing files # this script attempts to exclude uploading itself explicitly so the script name …

【ArcPy】批量读取文件夹excel中XY并转为点shp

示例展示 代码 只读取excel中含有XY字段的文件&#xff0c;并将矢量命名为excel文件名称。 import os import pandas as pd import arcpy folder_path r"C:\Users\admin\Desktop\excelfile" extension"xlsx" files [file for file in os.listdir(folder…

即插即用篇 | YOLOv8 引入 DoubleAttention 注意力机制 | 《A2-Nets: Double Attention Networks》

论文名称:《A2-Nets: Double Attention Networks》 论文地址:https://arxiv.org/pdf/1810.11579.pdf 文章目录 1 原理2 源代码3 添加方式4 模型 yaml 文件template-backbone.yamltemplate-small.yamltemplate-large.yamltemplate-neck.yamlyolov8-C2

敏捷开发模型:一种灵活、协作和持续的软件开发方法

敏捷开发模型&#xff1a;一种灵活、协作和持续的软件开发方法 引言 在软件开发领域&#xff0c;随着市场需求的不断变化和技术的迅速发展&#xff0c;传统的瀑布模型逐渐暴露出其局限性。为了应对这些挑战&#xff0c;敏捷开发模型应运而生。敏捷开发模型强调灵活、协作和持…

PoC免写攻略

在网络安全领域&#xff0c;PoC&#xff08;Proof of Concept&#xff09;起着重要的作用&#xff0c;并且在安全研究、漏洞发现和漏洞利用等方面具有重要的地位。攻击方视角下&#xff0c;常常需要围绕 PoC 做的大量的工作。常常需要从手动测试开始编写 PoC&#xff0c;再到实…

Axure RP 9 for Mac 中文激活版:交互设计神器

axure mac 是专为UX专业人员和业务分析师设计的专业网站原型设计工具&#xff01;可以帮助他们快速创建应用程序和网站的线框&#xff0c;原型和规格&#xff01; 软件下载&#xff1a;Axure RP 9 for Mac v9.0.0.3741中文正式版下载 新功能包括一系列广泛的改进&#xff1a;全…