java中long是64位,正好可以转成2个32位的int。
项目中正好 要做这种转换,所以,记录一下转换过程。
简单事例:
long i = 55;
int i1 = (int) i;
int i2 = (int) (i << 32);
System.out.println("i1:" + i1 + ";i2:" + i2);
long l1 = (i2 & 0x000000ffffffffL) << 32;
long l2 = i1 & 0x00000000ffffffffL;
long l = l1 | l2;
System.out.println("l:" + l);
结果:
i1:55;i2:0
l:55
注意:传递时,big-endian和little-endian问题