二进制报文头的转换
为何使用二进制报文头,不使用十进制?
- 普通十进制报文所能表示的报问题最多字节有限
- 二进制则可以表示Integer.MAX_VALUE,单次数据量更大
将int转为4个字节
public static byte[] int2bytes(int i){
byte[] bytes=new byte[4];
bytes[0]=(byte) (i>>>24&0xff);
bytes[1]=(byte) (i>>>16&0xff);
bytes[2]=(byte) (i>>>8&0xff);
bytes[3]=(byte) (i&0xff);
return bytes;
}
4个字节转为int
public static int bytes2Int(byte[] tar){
int byte3=tar[3];
int byte2=tar[2]<<8;
int byte1=tar[1]<<16;
int byte0=tar[0]<<24;
return byte0|byte1|byte2|byte3;
}