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问题