最近在做一个项目,是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 ;

}

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

  1. long(Long)与int(Integer)四种类型之间互相转换的方法分享

    最近开发的项目,里面的金额比较大,经常有long型 ,int型,那么他们之间怎么转换呢? 下文笔者将一一道来,如下所示: 一.将long型转化为int型,此处的long型是基础类型: long a = ...

  2. 转载:int char* float与CString 之间的转换

    <script type="text/javascript" src="http://blogger.org.cn/blog/inc/main.js"&g ...

  3. new语句java_有 Java 语句“int[] a,b=new int[3];”,则说法正确的是

    [单选题]下列程序的输出结果为_________ . [单选题]给定如下程序,编译运行,错误出现在_________ . [简答题] [单选题]给定如下 Java 代码,编译运行时,结果是______ ...

  4. Java语言int型与byte型数组的转换

    为了在接下来的篇章中讲解用Java实现文件的归档和解归档,需要先了解一下Java中int型与byte型数组之间的相互转换. 首先,我们先来看看int型转换成byte型数组. 我们知道,Java中,一个 ...

  5. java类型转换面试题_JavaSE:数据类型之间的转换(附常见面试题)

    数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...

  6. Java之Base64实现文件和字符串之间的转换

    摘要:Java通过Base64加密解密实现文件和字符串之间的转换! Base64.java package com.qdexam.util;import java.io.FileInputStream ...

  7. Java中字节数组和十六进制字符串之间的转换

    1. 概述 在本教程中,我们将看看将字节数组转换为十六进制字符串,反之亦然的不同方法. 我们还将了解转换机制并编写我们的实现来实现这一点. 2. 字节和十六进制之间的转换 首先,我们来看看字节和十六进 ...

  8. c语言 字符转int型,C语言—类型之间的转换

    原标题:C语言-类型之间的转换 当混合不同类型的数据进行计算时,便会发生类型转换. 当不同类型的数据进行计算时,应首先将操作数转换成相同的数据类型,然后再进行计算. 类型转换有两种形式,即隐式类型转换 ...

  9. java url换成流_JAVA数据流之间的转换

    InputStream.read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中. OutputStream.write(byte[] b) 将 b.length 个 ...

  10. Java中字符串下划线和驼峰之间的转换(万能工具包hutool)

    下划线转驼峰 public static void main(String[] args) {HashMap<String,Object> extMap = new HashMap< ...

最新文章

  1. 《Kinect应用开发实战:用最自然的方式与机器对话》一3.4 深度图像成像原理...
  2. nodejs-stream部分
  3. GridControl详解(八)菜单
  4. c语言pop逆置单链表,C语言实现单链表
  5. Android Studio 中快速提取方法
  6. coursera 《现代操作系统》 -- 第五周 同步机制(1)
  7. PaddlePaddle预训练模型大合集
  8. PyQt5树形结构控件QTreeWidget操作
  9. Android程序版本更新--通知栏更新下载安装(转)
  10. RocketMQ入门到入土(五)消息持久化存储源码解析
  11. LeetCode 123买卖股票的时机 III
  12. 线程结束后会自动关闭_多线程初级(1)
  13. Myeclipse6.0安装svn插件
  14. dism++封装系统使用教程_dism++封装系统使用教程_win7系统部署工具Dism的操作方法...
  15. bzoj 4082: [Wf2014]Surveillance 倍增
  16. 如何使广告条自动运行,仅供学习参考
  17. ReferenceError: request is not defined
  18. Reached heap limit Allocation failed - JavaScript heap out of memory
  19. CDN边缘智能助力5G
  20. 怎样在线压缩png图片大小?将这个压缩方法分享给大家

热门文章

  1. Carmack平方根函数经典案例
  2. 梯度向量、Jacobian矩阵、Hessian矩阵
  3. 2021宿州市地区高考成绩排名查询,2021年宿州所有小学名单及排名,宿州最好的小学有哪些...
  4. 给table表格表头添加斜线
  5. 洛谷P3369(范浩强Treap)知识回顾+视频讲解
  6. Word 打印 PrintOut 方法
  7. 树莓派网络摄像头远程监控
  8. Python:try……excepted捕获方法
  9. 抖音网上如何赚钱变现,有哪些具体的方法
  10. 腾讯企业邮箱的邮局服务器设置,网易邮件客户端如何配置腾讯企业邮箱 并设置服务器邮件同步-♚付涛纪实阁♚...