将多头转换为两整型,反之亦然

2022-09-01 20:17:05

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


答案 1
long c = (long)a << 32 | b & 0xFFFFFFFFL;
int aBack = (int)(c >> 32);
int bBack = (int)c;

在Java中,你不需要那么多的括号,也不需要对反向计算进行任何掩码。


答案 2

整数到多头:

long c = ((long)a << 32) | ((long)b & 0xFFFFFFFFL);

我将把它作为一个练习,让读者执行反向计算。但提示是;使用更多的位移和位掩码

(根据T. Murdock的评论编辑)


推荐