以下是代码示例:
BigInteger number=new BigInteger("2154789654785210095153123254756845");
boolean b=number.longValue()>Long.MIN_VALUE;
boolean c=number.longValue()<Long.MAX_VALUE;
boolean d=number.longValue()>=Integer.MIN_VALUE;
boolean e=number.longValue()<=Integer.MAX_VALUE;
System.out.println(""+b);
System.out.println(""+c);
System.out.println(""+d);
System.out.println(""+e);
生成输出。
true
true
false
true
请记住,在 Integer 达到 MAX_VALUE
后,值会回到 MIN_VALUE
并重新循环。如果一个值是 <=Integer.MAX_VALUE
,那么它必须是 >=Integer.MIN_VALUE
,那么为什么布尔变量 d
返回 false
?
long >= int
的情况下,比较之前会将int
值强制转换为long
。 - Andreas