当前位置: 技术问答>java相关
Math.abs(Integer.MIN_VALUE));
来源: 互联网 发布时间:2015-11-20
本文导语: public class MathTest { public static void main(String[] args) { System.out.println(""+Math.abs(Integer.MIN_VALUE)); System.out.println(""+Math.abs(Long.MIN_VALUE)); } } 为何结果为: -2147483648 -9223372036854775808 | Integer.MIN_VALU...
public class MathTest
{
public static void main(String[] args)
{
System.out.println(""+Math.abs(Integer.MIN_VALUE));
System.out.println(""+Math.abs(Long.MIN_VALUE));
}
}
为何结果为:
-2147483648
-9223372036854775808
{
public static void main(String[] args)
{
System.out.println(""+Math.abs(Integer.MIN_VALUE));
System.out.println(""+Math.abs(Long.MIN_VALUE));
}
}
为何结果为:
-2147483648
-9223372036854775808
|
Integer.MIN_VALUE 是 -2147483648
也就是二进制的 1000....00(31个0)
一般对负数而言,绝对值就是再取负,所以取反加一,得到还是1000...00
Math.abs(int)返回的是一个int值。
但是2147483648已经不是Integer的范围所能表示的了。硬用int来表示,就
变成这样了。
可以这样——
System.out.println(""+Math.abs((long)Integer.MIN_VALUE));
System.out.println(""+Math.abs((double)Long.MIN_VALUE));
也就是二进制的 1000....00(31个0)
一般对负数而言,绝对值就是再取负,所以取反加一,得到还是1000...00
Math.abs(int)返回的是一个int值。
但是2147483648已经不是Integer的范围所能表示的了。硬用int来表示,就
变成这样了。
可以这样——
System.out.println(""+Math.abs((long)Integer.MIN_VALUE));
System.out.println(""+Math.abs((double)Long.MIN_VALUE));
|
abs(Integer.MIN_VALUE)超出了整形的表示范围,
所以它的返回值和参数一样
所以它的返回值和参数一样
|
楼上说的对,你可以先转换一下。
|
16 进制换为 10 进制。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。