黑马程序员技术交流社区
标题:
java中关于short的赋值运算问题
[打印本页]
作者:
张慧
时间:
2013-8-28 17:52
标题:
java中关于short的赋值运算问题
short a=3; a+=4;
//a=a+4;
这里如果是采用标红的那段代码时,在编译时程序就会报错。这个原因和:
byte x=3,y=5;
byte sum;
sum = x +y;
这里编译时出的错原因是一样的道理,因为在赋值的过程中还有不确定的变量,所以有可能会出现因为数据超出值的范围来造成精度的问题。但是上面的赋值运算a+=4它其实是在底层已经做了自动转换了,即a+=4等效为a=(short)(a+4).
(注意:如果是int类型的运算,即使在赋值时出现不确定的值也是不会出错的,因为运算的默认类型是int类型,所以即使越界了,说明符号位就为1,那么所得值就是二进制的数值为取反加1,再带上符号位,例如:
int x=Integer.MAX_VALUE;
int y=x+1;
System.out.println(y);//y=-2147483648.
)
像这种细节问题,之前自己从来是不在意的,可以看了视频后,感觉获益良多啊。看来基础的东西还是要巩固的越扎实越好。
作者:
许庭洲
时间:
2013-8-28 20:14
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2