欢迎来到天天文库
浏览记录
ID:57686726
大小:17.00 KB
页数:2页
时间:2020-09-01
《C#字节数组与int转换(含高低位转换的内容).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、字节数组与int转换 在C#中将INT型转为字节数组后,其是以高位到低位排序存储的,而在C++和JAVA中是以低位到高位排序的,以致如果直接将转换后的字节数组与C++或JAVA通信时会出错。需要反排序后再传输。 字节转为Int代码 C#转换代码如下: C#byte[]bytes={0,0,0,25};//Ifthesystemarchitectureislittle-endian(thatis,littleendfirst),//reversethebytearray.if(BitConverter.IsLittleEndian)//判
2、断计算机结构的endian设置Array.Reverse(bytes);//转换排序inti=BitConverter.ToInt32(bytes,0);Console.WriteLine("int:{0}",i);//Output:int:25BitConverter.IsLittleEndian字段为指示数据在此计算机结构中存储时的字节顺序(“Endian”性质)。如果结构为Little-endian,则该值为true;如果结构为Big-endian,则该值为false。不同的计算机结构采用不同的字节顺序存储数据。“Big-endian”表示最大的有效字节位于
3、单词的左端。“Little-endian”表示最大的有效字节位于单词的右端。 Int转为字节代码 C#转换代码如下: byte[]aa=BitConverter.GetBytes(1243); if(BitConverter.IsLittleEndian) Array.Reverse(aa); JAVA转换代码如下:publicbyte[]int2bytes(inta,booleanisHighFirst) { byte[]result=newbyte[4]; if(isHighFirst)
4、 { 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]
5、=(byte)(a>>16&0xff); result[1]=(byte)(a>>8&0xff); result[0]=(byte)(a&0xff); } returnresult; }
此文档下载收益归作者所有