C的byteArray型数据转换为JAVA的int型
2012-10-25 13:48
351 查看
由于工作需要,C语言中的byteArray型数据传送给JAVA,然后在JAVA中解析出int型,因为JAVA中byte默认为signed byte,读取的byteArray需要进行转换,才能正常使用,所以,就自己写了一个转换算法,如下 :
C语言写byteArray操作如下:
JAVA中读取byteArray然后进行转换,转换算法如下:
需要负整数转换的,请自行修改算法。
转载请注明来自Master.R(石硕)的CSDN博客:blog.csdn.net/shishuo365 如有疑问请发邮件shishuo365#126.com(将#更换为@)
C语言写byteArray操作如下:
int bodySize = 32767; char buf[4] = {0}; buf[0] = bodySize; buf[1] = bodySize >> 8; buf[2] = bodySize >> 16; buf[3] = bodySize >> 24;
JAVA中读取byteArray然后进行转换,转换算法如下:
/* * 将C的byteArray型数据转换为JAVA的int型,转换范围 0~2147483647 (已测试其准确性) */ private int cBytesToInt(byte[] data, int offset) { int result = 0; result += (data[offset+0] & 0x7F); if ( data[offset+0] < 0 || ((data[offset+0]|0x01) < 0) ) result += 128; result += (data[offset+1] & 0x7F) * 16 * 16; if ( data[offset+1] < 0 || ((data[offset+1]|0x01) < 0) ) result += 32768; result += (data[offset+2] & 0x7F) * 16 * 16 * 16 * 16; if ( data[offset+2] < 0 || ((data[offset+2]|0x01) < 0) ) result += 8388608; result += (data[offset+3] & 0x7F) * 16 * 16 * 16 * 16 * 16 * 16; return result; }
需要负整数转换的,请自行修改算法。
转载请注明来自Master.R(石硕)的CSDN博客:blog.csdn.net/shishuo365 如有疑问请发邮件shishuo365#126.com(将#更换为@)
相关文章推荐
- JAVA中int型数据和byte数组之间的相互转换
- java基本数据类型转换成byte[]数组
- Java中如何将以byte数组给出的数据转换为double数组形式
- JAVA byte[]数据类型之间的转换
- Java 中数据类型转换成 byte[] 方法
- java中将int型数据转换成byte字节数组
- java如何把char型数据转换成int型数据(转)
- java根本数据类型转换成byte[]数组
- 最全面的Java字节byte操作,处理Java基本数据的转换及进制转换操作工具
- Java中byte类型数据在运算之前要转换成int类型数据
- Java 基础 byte[]与各种数据类型互相转换的简单示例
- 往服务器连续写7个字节的数据作为命令,但是javabyte类型的范围为-128-127。这样要转换
- java数据类型转换之int,byte
- Java中的byte[]数据类型与其他各类数据类型的转换
- java基本数据类型转换成byte[]数组
- java Byte和各数据类型(short,int,long,float,double)之间的转换
- java中如何将byte[]里面的数据转换成16进制字符串
- java 操作xml数据 转换byte spring源码分享
- 最全面的Java字节byte操作,处理Java基本数据的转换及进制转换操作工具,流媒体及java底层开发项目常用工具类
- Java 数据类型转换——byte[]/16进制/字符串互转