黑马程序员技术交流社区

标题: 李哥的强制转换 [打印本页]

作者: 程有愿    时间: 2012-8-24 09:36
标题: 李哥的强制转换
今天跟李哥讨论强制转换  他问我 short i=1;i+=65535;System.out.println(i)打印的是多少?
我先用eclipse算出了65535的二进制:Integer.toBinaryString(65535);结果为
     1111   1111    1111    1111  (这个是short的最大值了 16字位)
+   0000   0000    0000    0001      (进行加法运算)
----------------------------------------------------
   1 0000   0000   0000     0000
注意这里因为+=在编译时会自动进行强转动作,吧最后的结果转换成short类型的
而short只有16字位,所以这里在取运算结果时只保留后16位既
0000  0000  0000  0000
所以结果答案为 0;比较有意思跟大家也分享下!!嘿嘿。




作者: 寇龙飞    时间: 2012-8-24 12:45
有道理,学习了。




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