首页 > 代码库 > JAVA 与 C# 通讯中的int 之byte[]

JAVA 与 C# 通讯中的int 之byte[]

在JAVA与C#通讯时由于两种不通的语言INT类型不样,比如在做Soket时做数据包头确认数据长度需要一个固定的字节数中存放一个INT类型的数据发送时会读不到相同的数据。

 

在JAVA中 把 INT转为 byte[]

 1 /** 2      * 把int32类型的数据转存到4个字节的byte数组中 3      * @param i : int32类型的数据 4      * @return 返回 4个字节大小的byte数组 5      */ 6     public static byte[] ConvertIntToByteArray(int i) 7     { 8       byte[] arry = new byte[4]; 9       arry[3] = (byte)(((i & 0xFF000000) >> 24) & 0xFF);  10       arry[2] = (byte)(((i & 0x00FF0000) >> 16) & 0xFF);  11       arry[1] = (byte)(((i & 0x0000FF00) >> 8) & 0xFF);  12       arry[0] = (byte)((i & 0x000000FF) & 0xFF);13       return arry;14     }

在C#中 读取

byte[] datasize = new byte[4];soket.Receive(datasize, 0, 4, SocketFlags.None);int size = BitConverter.ToInt32(datasize, 0);

 

JAVA 与 C# 通讯中的int 之byte[]