Android与底层硬件通信,进行CRC16校验时,要考虑到无符号整形的原因,java会将超过的值变成负数

C算法:

Uint16 crc16 = 0;

Uint8  i = 0;

Uint16 Crc16Calc(Uint8 *data_arr, Uint8 data_len)

{

crc16 = 0;

for(i = 0; i < data_len; i++)

{

crc16 = (Uint16)(( crc16 >> 8) | (crc16 << 8));

crc16 ^= data_arr[i];

crc16 ^= (Uint16)(( crc16 & 0xFF) >> 4);

crc16 ^= (Uint16)(( crc16 << 8) << 4);

crc16 ^= (Uint16)((( crc16 & 0xFF) << 4) << 1);

}

Return crc16;

}

Java算法:

public static char Crc16Calc(byte[] data_arr, int data_len)
{
char crc16 = 0;
   int i;
for(i =0; i < (data_len); i++)
   {
crc16 = (char)(( crc16 >> 8) | (crc16 << 8));
crc16 ^= data_arr[i]& 0xFF;
crc16 ^= (char)(( crc16 & 0xFF) >> 4);
crc16 ^= (char)(( crc16 << 8) << 4);
crc16 ^= (char)((( crc16 & 0xFF) << 4) << 1);
}
return crc16;
}

校验器下载地址:http://dc3.pc6.com/xy2/amCRC16.zip

Java实现crc16校验 附上校验工具对照。解决长数据校验不正确的问题相关推荐

  1. python数据校验_最近抽空造了一个数据校验的轮子 Python -validator

    最近抽空造了一个数据校验的轮子 python-validator. 在开发 web 应用时,经常需要校验前端传入的数据.如果使用 Django,那么可以使用自带的 forms 进行数据校验. pyth ...

  2. java validate校验_自定义工具类实现validate参数校验

    前言 相信项目中做一些htttp接口,避免不了要对参数进行校验,大多数情况下,其实我们只是校验是否为NULL就可以了 1.通过注解实现各种状态的字段 1.1.引入依赖 默认的版本是6.0.9.Fina ...

  3. bcc校验位怎么算的_数据BCC校验码计算工具

    这是数据BCC校验码计算工具下载,获得数据BCC校验码工具,MFC开发,使用方便,输入数据16进制字符串,点击计算生成BCC码.. 软件介绍 数据BCC校验码计算工具,难免会发生错误.为了避免这种错误 ...

  4. java 护照校验,Java应用中的数据校验

    翻译:叩丁狼教育吴嘉俊 [译者注:这篇文章是开源项目CUBA Platform的作者,在这篇文章中,作者阐述了CUBA平台中关于数据校验的设计思想和使用方式,可以作为大家在设计数据校验方面一个比较好的 ...

  5. C# CRC16数据校验支持ModelBus和XMODEM校验模式

    C# CRC16数据校验支持ModelBus和XMODEM校验模式 最近在研究C# CRC数据校验规则,之前用过ModelBus模式,但是这次的现场用到的是XMODEM模式,写一篇文章记录实现细节,方 ...

  6. 数据校验器架构模式组

    刘 岳林 (yuelin_liu@msn.com), 软件工程师 2007 年 1 月 15 日 本文阐述软件架构与设计模式,它为架构师和开发人员提供了一组关于数据校验的架构模式(隔离校验器,可组装校 ...

  7. 1. 不吹不擂,第一篇就能提升你对Bean Validation数据校验的认知

    乔丹是我听过的篮球之神,科比是我亲眼见过的篮球之神.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免 ...

  8. SpringBoot后端数据校验实战

    本文从本人博客搬运,原文格式更加美观,可以移步原文阅读:SpringBoot后端数据校验实战 一般我们会在Controller的接口中对前端传递的参数做数据校验,这是一个后端开发人员的基本素养 在Sp ...

  9. @Value获取值和@ConfigurationProperties获取值比较||配置文件注入值数据校验

    @Value获取值和@ConfigurationProperties获取值比较 配置文件yml还是properties他们都能获取到值: 如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值 ...

最新文章

  1. Facebook最新研究:无需额外训练AI,即可加速NLP任务
  2. pytorch加载预训练模型_Pytorch-Transformers 1.0发布,支持六个预训练框架,含27个预训练模型...
  3. Java 连接数据库(SQL Server)ODBC配置详情
  4. linux mysql 系统时间函数吗_linux下获取系统时间的方法
  5. J2EE的13个规范总结
  6. fslayui和layui_fsLayui介绍(layui插件)
  7. c 调用c语言形参为double,C学生作业,’%f’需要’float *’类型的参数,但参数2的类型为’double *’...
  8. linux学习笔记(10)fdisk命令
  9. JEECG第17期架构培训班15号开班啦!每期十个名额,想报名的抓紧时间啦!
  10. spring boot定时任务解析
  11. 一位质量总监的“发飙”
  12. 绿茶软件测试自学,7号心理测试小程序
  13. 威胁情报基础:爬取、行走、分析
  14. ssm项目配置文件中的包扫描bean,排除特定bean的扫描
  15. 你想让网站排名在百度或GOOGLE的第一位吗
  16. LTE 调制与解调——QPSK,16QAM,64QAM误码率比较
  17. 三阶矩阵的lu分解详细步骤_lu分解(笔算矩阵lu分解步骤)
  18. mysql start until_mysql 利用新建从库 使用 start slave until 恢复方法
  19. 粗略的学习一下结巴分词
  20. Android 接入穿山甲SDK之Banner广告

热门文章

  1. 2021考研政治腿四错题、重点题汇总
  2. 使用代码从抓包文件中提取H264码流
  3. vscode 新版eslint自动修复_vscode自动修复eslint规范的插件及配置
  4. java九宫格问题课程设计_课程设计九宫格数独.doc
  5. 密集环境下物体吸取可供性检测及其自监督学习方法
  6. Linux打开最大文件数限制
  7. 禁忌搜索算法实现经典VRP问题
  8. 用struts2的拦截器实现登录验证,同时登录界面加上验证码
  9. 怎么把pdf文件截图
  10. U盘安装Win10,遇到“由于存在受损的安装文件 因此安装无法继续”