字节数组与int转换
来源:互联网 发布:mac连接wifi共享热点 编辑:程序博客网 时间:2024/05/09 05:33
在C#中将INT型转为字节数组后,其是以高位到低位排序存储的,而在C++和JAVA中是以低位到高位排序的,以致如果直接将转换后的字节数组与C++或JAVA通信时会出错。需要反排序后再传输。
字节转为Int代码
C#转换代码如下:
byte[] bytes = { 0, 0, 0, 25 };// If the system architecture is little-endian (that is, little end first),// reverse the byte array.if (BitConverter.IsLittleEndian) //判断计算机结构的 endian 设置 Array.Reverse(bytes); //转换排序int i = BitConverter.ToInt32(bytes, 0);Console.WriteLine("int: {0}", i);// Output: int: 25
BitConverter.IsLittleEndian 字段为指示数据在此计算机结构中存储时的字节顺序(“Endian”性质)。
如果结构为 Little-endian,则该值为 true;如果结构为 Big-endian,则该值为 false。
不同的计算机结构采用不同的字节顺序存储数据。“Big-endian”表示最大的有效字节位于单词的左端。“Little-endian”表示最大的有效字节位于单词的右端。
Int转为字节代码
C#转换代码如下:
byte[] aa = BitConverter.GetBytes(1243);
if (BitConverter.IsLittleEndian)
Array.Reverse(aa);
JAVA转换代码如下:
public byte[] int2bytes(int a, boolean isHighFirst)
{
byte[] result = new byte[4];
if (isHighFirst)
{
result[0] = (byte)(a >> 24 & 0xff);
result[1] = (byte)(a >> 16 & 0xff);
result[2] = (byte)(a >> 8 & 0xff);
result[3] = (byte)(a & 0xff);
}
else
{
result[3] = (byte)(a >> 24 & 0xff);
result[2] = (byte)(a >> 16 & 0xff);
result[1] = (byte)(a >> 8 & 0xff);
result[0] = (byte)(a & 0xff);
}
return result;
}
- 字节数组与int转换
- int与字节数组互相转换
- 整型变量(int)与字节数组(byte[])的相互转换
- C#/C++ 中字节数组与int类型转换
- int、long、String类型数据与字节数组转换
- int long String与字节数组的相互转换
- lua 二进制字节与int相互转换
- Java_语法基础_4字节的byte数组与int之间的转换
- Unity3D中的socket通信之八(字节数组与数据转换dll-byte int string float)
- 整型int和字节数组byte相互转换
- C# int字节 转换Byte数组 3位
- Java实现将int转换成字节数组
- 整型int和字节数组byte相互转换
- c++ int与byte数组进行转换
- int与byte数组相互转换
- Java 中int与byte数组转换
- byte数组与int相互转换
- int 与char数组之间的转换
- 图片编号轮换显示(一)
- js左右滚动实例(2009年8月11)
- 增加firefox的搜索选项
- 翻页之后,保存上页已选ChcekBox,然后一次性处理所选信息
- CListCtrl的使用说明
- 字节数组与int转换
- Java 内存溢出分析
- JavaMail 深入浅出
- return和System.out()的退出
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之33---WAP 调用BREW
- Flex 和 Flash 的区别
- spring依赖注入
- jQuery ajax 应用
- opengl渲染流程