gpt4 book ai didi

Java,将两个整数组合成长结果负数

转载 作者:行者123 更新时间:2023-11-29 06:54:25 24 4
gpt4 key购买 nike

我正在尝试在 Java 中将两个整数组合成一个长整型。这是我正在使用的代码:

Long combinedValue = (long) a << 32 | b;

a = 0x03b = 0x1B56 ED23 时,我能够得到预期值(combinedValue = 13343583523 长)。

但是,当我的 a = 0x00b = 0xA2BF E1C7 时,我得到一个负值 -1567628857,而不是 2730484167。谁能解释为什么将整数 0 移动 32 位会导致前 32 位变为 0xFFFF FFFF

谢谢

最佳答案

b也是负的。这就是常量的意思。您可能想要的是((long) a << 32) | (b & 0xFFFFFFFFL) .

关于Java,将两个整数组合成长结果负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37425636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com