关于short的问题 short s1 = 1;s1 = s1 + 1;s1 += 1;这两者为什么产生的结果不一样呢?希望能解释一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 s1 = s1 + 1; 因为系统按照int进行计算了,然后把int给short就出错了。 因为1是int型的,所以s1 + 1结果是int型的值,而s1 += 1这样写不会晋升,为了方便。 大多时候,我觉得不会用short这么一个东西,其实它速度恐怕没有int快。 但是如果这样写也会出错的short s = 1;s = s + (short)1;或者是:s = (short)(s + 1)也会出错 short s = 1; s = (short)(s + 1) 可以的不会出错的啊 short s1 = 1;s1 = s1 + 1; s1+1的结果是int类型的,而s1是short类型的,所以在编译时无法通过。s1 += 1; 对于“+=”操作符,它会自动将所执行的计算结果转换成其操作符左边变量的类型。 short s = 1; s = s + (short)1;谁能详细解释下这个? short ,char,byte类型的数值在做四则运算时,都要转成int类型来运算的。结果也是int类型的。+=,++之类的运算是复合赋值运算,可以看成同类型的赋值,所以不会出错。 jvm最小运算单位是int,int以下不能直接用运算表达式,结果要转型,自加自减除外喵。 s+=1会自定类型转换相当于s=(short)(s+1) 另外,两个 short (byte, char, int) 无论进行什么运算结果都是 int,其中需要特别注意的是,short << int, short >> int, short >>> int 结果也都是 int。 删除数组中指定的某条记录 java题! 两个类互相交叉的问题 谢谢 关于string.getbytes方法的问题 请高手解决 kuai ,这个问题??在线等 Java poi3.9解析word文档 第一次写JAVA程序出现的问题 请问java 与j2me 、j2se、j2ee 是什么关系 如何捕捉out of memory 的错误? jcreator 无法显示界面 netbaens里中文的现实问题
short s = 1;
s = s + (short)1;
或者是:
s = (short)(s + 1)
也会出错
s = (short)(s + 1)
可以的不会出错的啊
s1 = s1 + 1; s1+1的结果是int类型的,而s1是short类型的,所以在编译时无法通过。
s1 += 1; 对于“+=”操作符,它会自动将所执行的计算结果转换成其操作符左边变量的类型。
s = s + (short)1;
谁能详细解释下这个?
short ,char,byte类型的数值在做四则运算时,都要转成int类型来运算的。结果也是int类型的。+=,++之类的运算是复合赋值运算,可以看成同类型的赋值,所以不会出错。
相当于s=(short)(s+1)
另外,两个 short (byte, char, int) 无论进行什么运算结果都是 int,其中需要特别注意的是,short << int, short >> int, short >>> int 结果也都是 int。