short与int

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了short与int相关的知识,希望对你有一定的参考价值。

short s1 = 1; s1 = s1 + 1,错误,int不能转换为short.
为什么 short s1 = 1; s1 += 1正确?

s1 += 1跟 s1 = s1 + 1还有区别吗???

因为short只要两个byte,而int是4个byte,你要强制转化的时候如果成功,那么int就会丢失前面的16个Bit这种转换显然是不等价的,是错误的。而在你后面的1因为你没有限定这是一个什么类型的数字,就会根据你前面的s1来自变化。
s1+=1 和你s1 =s1 +1是一样的。
参考技术A += 是运算符的重载

而 a=a+1;的+是 普通运算符

运算符重载后更强大.

比如方法重载,你可以做一些判断在里面.ok本回答被提问者采纳
参考技术B s1 = s1 + 1
1的默认类型是int,你需要对相加后的记过做强制转换
short s1 = 1
系统自动转换了

以上是关于short与int的主要内容,如果未能解决你的问题,请参考以下文章

java简单运算-short类型与int类型

short与int

Short与Integer互转

C语言数据类型中int与short的区别

C语言中short与int有啥区别

Java On AND'ing short 与 short,它被升级为 int 并返回奇怪的值