在java中,我知道算术运算结果的数据类型取决于参与计算的数字的数据类型。 例如,
int + int = int
长/双=双
一个。但是我找不到任何可以给我所有这些规则的引用资料。有人可以帮助我吗?
算术运算如何避免溢出?例如,2 long 的结果可能不再适合 long ...
非常感谢。
最佳答案
一个。这些规则称为数字提升规则,在 Java Language Specification, §5.6.2 (currently) 中指定。 .
有两种普遍接受的处理溢出的方法。
第一种方法是后检查,您在其中进行运算,比如加法,然后检查结果是否大于任一操作数。例如:
int c = a + b;
if( c<a) { // assuming a>=0 and b>=0
// overflow happened
}
第二种方法是预检查,您基本上首先尝试避免溢出的发生。示例:
if( a > Integer.MAX_INTERGER - b ) {
// overflow happened
}
关于java - java算术运算结果的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9981950/