C的byteArray型数据转换为JAVA的int型
来源:互联网 发布:补码如何转换成源码 编辑:程序博客网 时间:2024/06/01 20:48
由于工作需要,C语言中的byteArray型数据传送给JAVA,然后在JAVA中解析出int型,因为JAVA中byte默认为signed byte,读取的byteArray需要进行转换,才能正常使用,所以,就自己写了一个转换算法,如下 :
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(将#更换为@)
- C的byteArray型数据转换为JAVA的int型
- C语言将int型数据转换为十六进制的字符串
- c++string类型转换为int型
- 将char的数值转换为对应的int型数据
- java 将 Double类型的数据转换为Int 类型 四舍五入
- JAVA中int型数据和byte数组之间的相互转换
- Java服务器转换C#客户端传过来的int型数据
- bytearray和bitmapdata之间的转换
- 将int型数据转换为中文表达方式
- unsigned char类型指针与int型数据的转换
- 转换为INT型格式
- string转换为int型。
- C语言中int,duoble数据转换为char类型
- int型和char型数据 以及int 与string的相互转换
- Qt中把纯文本里的int型数据转化为int数组(矩阵)
- [Java] int型和string型的相互转换
- as3加密DES过程中,1、字符串转成ByteArray(byte数组)形式 ,2、ByteArray编码成base64 3、把ByteArray转换为16进制的形式的字符串
- Java 字符串 String 与整数型 int 之间的转换
- 《重构:改善既有代码的设计》中的坏味道
- 数学论文自动生成器(骗局)
- BUSYBOX介绍
- 使用BTstack实现IOS设备与非IOS设备之间的通信
- CXF客户端访问服务端四种方式
- C的byteArray型数据转换为JAVA的int型
- ajax与javascript,jquery, jquery UI
- USB数据共享、联机线、联网线编程接口(API)
- 游标简例
- 如何在代码中设置listView的常见样式
- 工作方向
- 沫沫提供伤感QQ日志_如今你我相见,却行似陌路人
- 用JAVA SOCKET发送和接收文件
- Android Java包