黑马程序员技术交流社区

标题: 基本数据类型提升是怎么回事? [打印本页]

作者: 梦之蓝2015    时间: 2015-3-10 09:54
标题: 基本数据类型提升是怎么回事?
刚看视频里老师老提int 能数据类型提升,搞晕了

作者: 习惯就好    时间: 2015-3-10 10:07
这个你可以这样的理解,譬如int型的是4个字节,而byte类型是一个字节,你只能从低向高提,而不能从高相抵转
作者: Dark县令    时间: 2015-3-10 10:24
关于s+=1和s=s+1首先
short s =1 ; s = s + 1;这句话肯定是错误的,而 s+=1;却是对的,首先声明的s是属于short短整形,在s=s+1中后面一段s+1里面1属于int型s就会有一个自动转换变成1所述的的int型然后s+1两个int类型的相加就得到int型在赋值给=前面的s型的时候前面属于short类型,所以int型不能直接赋值给short型出现错误容易丢失精度简单的说就是属于两部运算先算的是s+1然后在赋值给s。而在后面s+=1的时候他的原理是s=s+1是把后面s+1的值赋值给前面的s,而赋值之前s+1属于计算机内部运算直接提升,并非先算s+1,而是直接属于把s+1的值赋值给s在解析时候s+=1就等价于s = (short)(s+1),翻番来讲就是 s+=1 s = (s的类型)(s+1)
当然类型转换可以从小到大自动转,即byte->short->int->long小的数据类型像大的类型转换!




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