序列化协议基础
int类型序列化方式有两种
大端序列:先写高位,在写低位
小端序列:先写低位,在写高位
左边是高位 右边是低位
00000000 00000000 00000000 00001011 = 11
/**
* 将int数值转换为占四个字节的byte数组, 低位在前,高位在后
*/
public static byte[] intToBytes(int value)
{
byte[] byteArray = new byte[4];
// 最高位放在最后一个字节 ,也就是向右移动3个字节 = 24位
byteArray[3] = (byte) ((value & 0xFF000000)>>3*8);// 最高位,放在字节数组最后
byteArray[2] = (byte) ((value & 0x00FF0000)>>2*8);// 左边第二个字节
byteArray[1] = (byte) ((value & 0x0000FF00)>>1*8);
byteArray[0] = (byte) ((value & 0x000000FF)); // 最低位
//[11,0,0,0]
return byteArray;
}
value & 0xFF000000解释:
00000000 00000000 00000000 00001011
& 11111111 00000000 00000000 00000000