我想将long转换为二进制代码,然后更改一些位并再次获得long。我发现了这篇文章Java long to binary,但仍然无法实现我想要的目标。
我认为有两种方法可以实现我的目标:
for (let [key, value] of Object.entries(object)) {
window[key] = value;
}
答案 0 :(得分:4)
仅使用按位运算,而不是将long
转换为int
的数组。
我想将前32位与后32位交换
那将是:
long result = ((x & 0xFFFFFFFF00000000l) >> 32) | ((x & 0x00000000FFFFFFFFl) << 32);
这将屏蔽掉前32位,将它们向右移动,屏蔽掉后32位,将它们向左移动,然后将结果与|
(或)合并。
class Example
{
public static void main (String[] args) throws java.lang.Exception
{
long x = 0x1000000020000000l;
long result = ((x & 0xFFFFFFFF00000000l) >> 32) | ((x & 0x00000000FFFFFFFFl) << 32);
System.out.printf("0x%016X\n", x);
System.out.printf("0x%016X\n", result);
}
}
输出:
0x1000000020000000 0x2000000010000000