将long转换为两个int,反之亦然

时间:2012-05-21 13:27:29

标签: java int long-integer

如何将两个32位整数(int)转换为一个64位long,反之亦然?

2 个答案:

答案 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