Java中Integer.MAX_值的乘法
我只是在玩Java。编写了这个小程序:Java中Integer.MAX_值的乘法,java,Java,我只是在玩Java。编写了这个小程序: public class MaxValue{ public static void main(String[] args){ int i = Integer.MAX_VALUE; for(int j = 1; j<=10;j++){ System.out.println(i*j); } } } 公共类MaxValue{ 公共静态void main(字符串[]
public class MaxValue{
public static void main(String[] args){
int i = Integer.MAX_VALUE;
for(int j = 1; j<=10;j++){
System.out.println(i*j);
}
}
}
公共类MaxValue{
公共静态void main(字符串[]args){
int i=整数的最大值;
对于(int j=1;j您正在经历的被称为溢出
,使用原语类型java将以以下方式处理:-在达到整数时,MAX_值将转到整数。MIN_值
,这样您只会得到一个负值,它被称为溢出。因为您在t上操作最大可能值,任何数学递增运算都可能导致溢出
关于Java中溢出的更多信息:我们需要分析结果的二进制内容:
Integer.MAX_VALUE*1=0x7fffffff,即十进制2147483647
Integer.MAX_值*2=0xfffffffe,即-2
Integer.MAX_VALUE*3=0x17ffffffd,但它是33位,截断后是0x7ffffffd,即2147483645
等等…如果您感兴趣,请尝试-1*Integer.MIN_VALUE
;)