int转字节数组
public static byte[] intTobyteArray(int num) {
byte[] b = new byte[4];
b[3] = (byte)(num & 0xff);
b[2] = (byte)((num >> 8) & 0xff);
b[1] = (byte)((num >> 16) & 0xff);
b[0] = (byte)((num >> 24) & 0xff);
return b;
}
字节数组转int
public static int byteArrayToInt(byte[] b) {
return b[3] & 0xff |
(b[2] & 0xff) << 8 |
(b[1] & 0xff) << 16 |
(b[0] & 0xff) << 24;
}
long转字节数组
public static byte[] longTobyteArray(long num) {
byte[] b = new byte[8];
b[7] = (byte)(num & 0xff);
b[6] = (byte)((num >> 8) & 0xff);
b[5] = (byte)((num >> 16) & 0xff);
b[4] = (byte)((num >> 24) & 0xff);
b[3] = (byte)((num >> 32) & 0xff);
b[2] = (byte)((num >> 40) & 0xff);
b[1] = (byte)((num >> 48) & 0xff);
b[0] = (byte)((num >> 56) & 0xff);
return b;
}
字节数组转long
public static int byteArrayToLong(byte[] b) {
return b[7] & 0xff |
(b[6] & 0xff) << 8 |
(b[5] & 0xff) << 16 |
(b[4] & 0xff) << 24 |
(b[3] & 0xff) << 32 |
(b[2] & 0xff) << 40 |
(b[1] & 0xff) << 48 |
(b[0] & 0xff) << 56;
}
参考
《Java 网络编程进阶 从BIO到RPC》