一、Int2Byte
byte[] bytes = new byte[4];
for (int i = 0; i < 4; i++) {
bytes[i] = (byte)(integer >>> (i * 8));
}
二、 Byte2Int
int i= (rno[0]<<24)&0xff000000|
(rno[1]<<16)&0x00ff0000|
(rno[2]<< 8)&0x0000ff00|
(rno[3]<< 0)&0x000000ff;
或
int x = ((b[0] & 0xFF) << 24) | ((b[1] & 0xFF) << 16) |
((b[2] & 0xFF) << 8) | ((b[3] & 0xFF) << 0);
因为在Java里是有符号扩展, 并且byte(如b[0])在取出来后已经被转换成了int, 所以需要0xFF来转换一下。 看到有说法说是为了转换成无符号数,如一个byte为fe, 则实际表现为 ff ff ff fe, 而0xff则为00 00 00 ff, 因此即去掉了前面无用的部分。