gpt4 book ai didi

java - 我们应该提防的任何陷阱 Integer.MIN_VALUE == -Integer.MIN_VALUE == Math.abs(Integer.MIN_VALUE)

转载 作者:行者123 更新时间:2023-11-30 06:36:15 33 4
gpt4 key购买 nike

我意识到下面的代码是正确的

Integer.MIN_VALUE == -Integer.MIN_VALUE == Math.abs(Integer.MIN_VALUE)

这是因为当我们取反-2147483648时,它应该变成+2147483648。由于Java可以表示的最大正整数是+2147483647,所以会出现整数溢出。当发生溢出时,它又变成了-2147483648

我在想,对于上面的情况,是不是有什么陷阱需要注意呢?

最佳答案

最大的陷阱是无声溢出,这是一个例子。

类似的例子。

Long.MIN_VALUE == -Long.MIN_VALUE;
0.0d == -0.0d
0.0f == -0.0f
Double.NaN != Double.NaN
Float.NaN != Float.NaN
Double.compare(Double.NaN, 0) == 1 but Double.NaN > 0 is false
Float.compare(Float.NaN, 0) == 1 but Float.NaN > 0 is false

仅供引用

Byte.MIN_VALUE != -Byte.MIN_VALUE;
Short.MIN_VALUE != -Short.MIN_VALUE;
Character.MIN_VALUE == -Character.MIN_VALUE;

关于java - 我们应该提防的任何陷阱 Integer.MIN_VALUE == -Integer.MIN_VALUE == Math.abs(Integer.MIN_VALUE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5093181/

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