如何将两个 32 位整数 ( int
) 转换为一个 64 位long
,反之亦然?
问问题
15004 次
2 回答
48
long c = (long)a << 32 | b & 0xFFFFFFFFL;
int aBack = (int)(c >> 32);
int bBack = (int)c;
在 Java 中,您不需要那么多括号,也不需要对反向计算进行任何屏蔽。
于 2012-06-26T20:33:23.007 回答
2
整数到多头:
long c = ((long)a << 32) | ((long)b & 0xFFFFFFFFL);
我将把它作为练习留给读者执行反向计算。但提示是;使用更多位移位和位掩码。
(根据 T. Murdock 的评论编辑)
于 2012-05-21T13:28:56.410 回答