uint32 java_关于Java的int和C的uint32之间的转换

uint32 java_关于Java的int和C的uint32之间的转换最近在做一个项目,是Android程序跟单片机之间通讯的,需求是Android程序给单片机发送一堆数据之后,要对这些数据进行CRC校验,手机端自己算一个校验值,发送给单片机,由单片机跟单片机部分算出的校验值做对比,一致则通过校验,不一致则校验失败。刚开始用Java自带的CRC校验类做校验,用CRC校验工具测试,结果一致,于是满怀信心的开始跟单片机正式测试,结果校验失败。以为是大小端的原因,就改了下…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

最近在做一个项目,是Android程序跟单片机之间通讯的,需求是Android程序给单片机发送一堆数据之后,要对这些数据进行CRC校验,手机端自己算一个校验值,发送给单片机,由单片机跟单片机部分算出的校验值做对比,一致则通过校验,不一致则校验失败。

刚开始用Java自带的CRC校验类做校验,用CRC校验工具测试,结果一致,于是满怀信心的开始跟单片机正式测试,结果校验失败。以为是大小端的原因,就改了下发送的部分,结果还是失败。恰好服务端的c#工程师也做了这个功能,于是借用他的校验算法,再次满怀信心的去测试,还是失败。

静静分析了下,c#工程师是把每个数据转成uint,然后去校验的。于是,费尽九牛二虎之力,将每个数据都转成uint32的整数,实现代码如下(在网上找的)

public static long bytes2int(byte[] src){

int firstByte = 0;

int secondByte = 0;

int thirdByte = 0;

int fourthByte = 0;

int index = 0;

long anUnsignedInt = 0;

firstByte = (0x000000FF & ((int) src(index)));

secondByte = (0x000000FF & ((int) src(index+1)));

thirdByte = (0x000000FF & ((int) src(index+2)));

fourthByte = (0x000000FF & ((int) src(index+3)));

anUnsignedInt = ((long (firstByte<<24|secondByte<<16|thirdByte<<8|fourthByte)) & 0x00000000FFFFFFFF;

return anUnsignedInt ;

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/196396.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • C语言的seekg函数,C++ seekg函数用法详解[通俗易懂]

    C语言的seekg函数,C++ seekg函数用法详解[通俗易懂]很多时候用户可能会这样操作,打开一个文件,处理其中的所有数据,然后将文件倒回到开头,再次对它进行处理,但是这可能有点不同。例如,用户可能会要求程序在数据库中搜索某种类型的所有记录,当这些记录被找到时,用户又可能希望在数据库中搜索其他类型的所有记录。文件流类提供了许多不同的成员函数,可以用来在文件中移动。其中的一个方法如下:seekg(offset,place);这个输入流类的成员函数的名字se…

  • 串口调试助手fx2n_PLC串口调试助手「建议收藏」

    串口调试助手fx2n_PLC串口调试助手「建议收藏」PLC串口通信调试是一款免费的单片机串口调试的小工具,主要用于进行plc和计算机的串口通信调试,帮助用户快速发现是哪一方出现了问题,为单片机调试提供了新的解决方案,需要的朋友可以下载!软件功能(1)可以用3种数据格式输入要发送的帧和显示收、发的帧,各数据格式可以相互转换。(2)可以计算常用的校验码(异或、求和、CRC和LRC),生成PLC通信中常用的多种协议格式的帧,适用范围广。(3)具有记…

  • 黑盒测试用例测试方法

    黑盒测试用例测试方法黑盒测试用例设计方法一、等价类划分法等价类划分法是一种典型的、重要的黑盒测试方法,是指某个输入域的子集合。在该子集合中,所有的输入数据对于揭露软件中的错误都是等效的。等价类划分有效等价类和无效等价类例如:微信红包的例子【0.01-200】按数据范围划分:有效的:0.01-200(1)无效的:小于0.01(2)…

  • eclipse的svn切换账号_eclipse将项目和svn关联

    eclipse的svn切换账号_eclipse将项目和svn关联百度搜了下全都是不知道哪年的一篇博客被疯狂转载,删除缓存文件的。但是根本不顶用。直接上我的解决方案吧(来自stackoverflow)。

    2022年10月14日
  • Linux 删除文件夹和文件的命令

    Linux 删除文件夹和文件的命令

    2021年10月14日
  • 儿童计算机编程主要是学什么,儿童编程是什么教什么?学习少儿编程有3大好处…

    少儿编程在中国起步较晚,但政策很好,技术发展也作为一个重要议题提上议事日程,为节目制作行业的发展提供了良好的土壤和坚实的基础,尤其是儿童节目的编排。在2018年,人工智能再次被写入工作报告。同时,我国的大学、中小学也逐步开设了程序设计和人工智能课程。由此可见,我国也在鼓励普及和推广节目教育,使更多的儿童学会编程。少儿编程是学什么的?少儿编程并不是让孩子成为程序员,而是要学会编程思维应用在日常的学习…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号