[java,2017-05-17] 数据型参数趣谈

此页面是否是列表页或首页?未找到合适正文内容。

[java,2017-05-17] 数据型参数趣谈

标签:long[]运行class1.03.4===val不同的

int的最大值是多少?加一呢?乘2呢?

第一个问题我想大多数人都知道,不知道后两个有多少人研究过。

首先上一段代码:

1 public class DecimalTest {
2 public static void main(String[] args) {
3 System.out.println(\”int==============\”);
4 int int_max=Integer.MAX_VALUE;
5 int int_min=Integer.MIN_VALUE;
6 System.out.println((\”int_max===\”+int_max));
7 System.out.println((\”int_max+1===\”+(int_max+1)));
8 System.out.println((\”int_min===\”+int_min));
9 System.out.println((\”int_min-1===\”+(int_min-1)));
10 System.out.println((\”int_max*2===\”+int_max*2));
11 System.out.println((\”int_min*2===\”+int_min*2));
12
13
34 }
35 }

运行结果

int==============int_max===2147483647int_max+1===-2147483648int_min===-2147483648int_min-1===2147483647int_max*2===-2int_min*2===0

我们可以看到,int的最大值加一后变为了最小值,乘2后变为了-2;同时int的最小值减一后变为了最大值,乘2后变为了0。

这是因为int_max的值用二进制表示为01111111111111111111111111111111,加一为10000000000000000000000000000000,

而10000000000000000000000000000000正是int_min的二进制的补码形式。

所以最大值加一就变为了最小值,最小值减一就变为了最大值。

此外,还有其他的数据类型short、long与此相同。

     System.out.println(\”short=============\”);
short short_max=Short.MAX_VALUE;
short short_min=Short.MIN_VALUE;
System.out.println((\”short_max===\”+short_max));
System.out.println((\”short_max+1===\”+(short_max+1)));
System.out.println((\”short_min===\”+short_min));
System.out.println((\”short_min-1===\”+(short_min-1)));
System.out.println((\”short_max*2===\”+short_max*2));
System.out.println((\”short_min*2===\”+short_min*2));

long long_max=Long.MAX_VALUE;
long long_min=Long.MIN_VALUE;
System.out.println((\”long_max===\”+long_max));
System.out.println((\”long_max+1===\”+(long_max+1)));
System.out.println((\”long_min===\”+long_min));
System.out.println((\”long_min-1===\”+(long_min-1)));
System.out.println((\”long_max*2===\”+long_max*2));
System.out.println((\”long_min*2===\”+long_min*2));

还有与此不同的float、double类型

     System.out.println(\”float=============\”);

作者: 雨林木风

为您推荐

返回顶部