java大小端序转换
在写客户端Socket对接的时候发现一个问题,整型数字转成二进制流发送给Windows服务端时,Windows那边二进制转不回整型数字,后来发现原来Windows端是小端序的。
一般的进行网络传输我们都应该用网络端序,也就是大端序
附上大小端的转换代码
/**
* 切换大小端续
*/
public static byte[] changeBytes(byte[] a){
byte[] b = new byte[a.length];
for (int i = 0; i < b.length; i++) {
b[i] = a[b.length - i - 1];
}
return b;
}
再来看看什么是大小端序
端序也叫字节序,就是数据排列的顺序,比如
int 1 在大端序里是这么存的 0x00…001
int 1 在小端序里是这么存的 0x100…00
就是顺序的区别