如何将两个32位整数(int
)转换为一个64位long
,反之亦然?
答案 0 :(得分:38)
long c = (long)a << 32 | b & 0xFFFFFFFFL;
int aBack = (int)(c >> 32);
int bBack = (int)c;
在Java中,您不需要太多括号,也不需要对反向计算进行任何屏蔽。
答案 1 :(得分:1)
long c = ((long)a << 32) | ((long)b & 0xFFFFFFFL);
我将把它作为练习让读者进行反向计算。但暗示是;使用更多位移和bit-masks。