gpt4 book ai didi

java - 将负 Integer.MIN 转换为正 long

转载 作者:行者123 更新时间:2023-12-01 07:18:58 26 4
gpt4 key购买 nike

我正在尝试使用以下代码将负 Integer.MIN 转换为正长值:

long lv = -1 * value_int;

除了 value_int 的值 = Integer.MIN_VALUE 之外,上述代码可以完美运行。在 Integer.MIN_VALUE 情况下,lv 的值始终为 Integer.MIN_VALUE;

以下代码适用于所有情况,包括 Integer.MIN_VALUE

long lv = value_int;
lv = -1 * value_int;

知道为什么 long lv = -1 * value_int 在 Integer.MIN_VALUE 情况下不起作用吗?

最佳答案

1(在本例中,前面是一元 - 运算符)是一个 int 文字。由于 value_int 也是一个 int,因此乘法是作为 int 完成的 - 它会溢出,然后才提升为 long。如果您使用 long 文字,则乘法将以 long 形式完成,您将得到正确的结果:

long lv = -1L * value_int;
// Here-----^

关于java - 将负 Integer.MIN 转换为正 long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46990335/

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