在Java中仔细分配长值以避免溢出
如果在Java中具有整数值的运算,我们需要注意int下溢和溢出条件。考虑到以下事实:在Java中,int数据类型是32位带符号的二进制补码整数,最小值为-2,147,483,648,最大值为2,147,483,647。如果某个值超出可能的最大值,则该值将返回最小值并从该最小值继续。以类似的方式,它的值小于最小值。请看以下示例。
示例
public class Tester {
public static void main(String[] args) {
//方案1:
//将int值分配给long导致溢出
long MICROSECONDS_A_DAY = 24 * 60 * 60 * 1000 * 1000;
System.out.println(MICROSECONDS_A_DAY);
//方案2:
//分配长值不会导致溢出
MICROSECONDS_A_DAY = 24L * 60 * 60 * 1000 * 1000;
System.out.println(MICROSECONDS_A_DAY);
}
}输出结果
500654080 86400000000
要考虑的要点
尽管我们使用了long变量,但在方案1中,乘法操作基于int,导致int溢出。结果,输出不正确。
在方案2中,我们将乘法运算强制为基于所属的,从而得出正确的结果。
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短