黑马程序员技术交流社区

标题: 强转问题 [打印本页]

作者: aiq黑马程序员    时间: 2014-7-2 12:07
标题: 强转问题
short b+=1
//就是short b =(short)(b+1),short类型占2bit内存,1默认int型占4bit,所以s自动提升成int类型。左右边内存大小不等,右边内存比左边大,需要强转成short类型。那么,short b =b+=1也只是多了一步赋值而已。


这是在我回复中看到的,强转不是大内存转小内存吗?short能自动提升成int?
作者: weitz    时间: 2014-7-2 13:33
强转不是向上转型的麽。。
作者: 天,殇心    时间: 2014-7-2 13:42
+=:这个运算符暗含着类型强制转换。类型强制转换就是向下转型,会丢失精度。
short b=1;
b+=1;
这样就不会报错
作者: I'm_permanent.    时间: 2014-7-2 16:27
内存里头是这样的吧
0x00 0x01  这是short类型
0x00 0x00 0x00 0x01这样是int类型。
作者: haohanlinyu    时间: 2014-7-2 23:14
和+运算符做运算的时候,short会自动提升为int类型
作者: fantacyleo    时间: 2014-7-2 23:19
java中写个1默认是int类型——这个说法有根据么?
作者: aiq黑马程序员    时间: 2014-7-3 14:50
明白了 谢谢大家了
作者: inception    时间: 2014-7-21 23:04
int 占4个字节(byte),32位(bit)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2