在JAVA中超出int范围

来源:百度知道 编辑:UC知道 时间:2024/06/05 07:35:28
int a , b ,c ;
a=1000000000;
b=40;
c=a*b/80;
System.out.println("c="+c);
结果是16816178
我想问一下.在a*b应该等于40000000000.超出了int的范围.得到的是1345294336这个个数值.我想问一下.这个数值是怎么算出来的.

java中的int类型存储长度为32bit,a * b的结果为40000000000,转换为二进制就是100101010000001011111001000000000000,超出int长度4bit,开始的1001就被截去了,剩下了32bit就是01010000001011111001000000000000转换成十进制就是1345294336。

good!