我之前也非常疑惑,现在明白了,你只要记住就OK了:
【1】
比较好理解:x是int类型,1000我们知道默认的是int类型,int/int还是int类型,取整数部分哈
【2】
1000默认的是int类型,理解就很简单了吧,x/1000,重点是x做了类型的自动提升(由short到int),int/int
=int,该int类型的值再付给x的short类型必然损失精度,所以一样正确的写法是:x=(short)(x/1000);
或者写成x /=1000,也是非常OK的
【3】
产生这样原因是:short/short=其实具体来说,得到的是一个Integer类型对象的数据,所以,自然也要
进行转换:x =(short)( x/y);这样一切就ok了!
【4】
int类型的最大值是2147483647,int x = 2000000000,y = 2000001111;中x+y必然会超出范围,不报错的原因是:都是按照二进制的方式就行加法运算,
超出最大值的限制之后,(就是所谓的溢出),最高位可能会变为1,也就是表示负数,所以结果为负数
【5】
对于short方式的加法运算,自己分析吧,应该不难了吧!
|