Java 调用long的最大值和最小值
今天对Java八种基本数据类型进行总结,当总结到整数类型中的long时,出现了测试long最大值和最小值错误;
long取值范围是 -2^63 ~ 2^63-1 ;
即:-9223372036854775808 ~ 9223372036854775807 ;
当进行测试时,却报错了,代码如下:
1
2
3
|
//错误:The literal 9223372036854775808 of type int is out of range long test_Min = - 9223372036854775808 ; long test_Max = 9223372036854775807 ; |
这就很纳闷了,不是说取值范围在 -2^63 ~ 2^63-1 之间吗,怎么错误说超出范围?
通过百度后才知道,原来并不是 9223372036854775807 赋值时超出了范围,而是语句
long test_Max = 9223372036854775807 ; 出了问题,在使用9223372036854775807 进行赋值时,9223372036854775807 是属于int数据类型的,而int的数据类型取值范围是 -2^31 ~ 2^31-1 之间,很显然 9223372036854775807 是超出了这个范围的,所以出现了代码错误问题;
解决:
将 9223372036854775807 声明成long类型就可以了,如下所示;
1
2
|
long test_Min = -9223372036854775808L ; long test_Max = 9223372036854775807L ; |
以下提供两种查看long类型的最大值和最小值的方法:
一、通过十六进制方式进行查看:
1
2
|
long test_min = 0x8000000000000000l; long test_max = 0x7fffffffffffffffl; |
输出结果:
-9223372036854775808 和 9223372036854775807
二、通过long的源码进行查看;
1
2
|
long min = Long.MIN_VALUE; long max = Long.MAX_VALUE; |
输出结果:
-9223372036854775808 和 9223372036854775807
Java 基本数据类型最大值极限和最小值极限
想知道 Java 基本数据类型最大值极限和最小值极限,写个小程序就很容易知道。
测试 Integer, Long, Float 和 Double 的最大值和最小值,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public static void main(String[] args) { System.out.println( "Integer.MIN_VALUE = " + Integer.MIN_VALUE); System.out.println( "Integer.MAX_VALUE = " + Integer.MAX_VALUE); System.out.println( "Long.MIN_VALUE = " + Long.MIN_VALUE); System.out.println( "Long.MAX_VALUE = " + Long.MAX_VALUE); System.out.println( "Float.MIN_VALUE = " + Float.MIN_VALUE); System.out.println( "Float.MIN_NORMAL = " + Float.MIN_NORMAL); System.out.println( "Float.MAX_VALUE = " + Float.MAX_VALUE); System.out.println( "Double.MAX_VALUE = " + Double.MAX_VALUE); System.out.println( "Double.MIN_VALUE = " + Double.MIN_VALUE); } |
输结果如下:各位自己看吧:
Integer.MIN_VALUE = -2147483648
Integer.MAX_VALUE = 2147483647
Long.MIN_VALUE = -9223372036854775808
Long.MAX_VALUE = 9223372036854775807
Float.MIN_VALUE = 1.4E-45
Float.MIN_NORMAL = 1.17549435E-38
Float.MAX_VALUE = 3.4028235E38
Double.MAX_VALUE = 1.7976931348623157E308
Double.MIN_VALUE = 4.9E-324
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/LagerSwan/article/details/104056886