A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 程有愿 中级黑马   /  2012-8-24 09:36  /  1615 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天跟李哥讨论强制转换  他问我 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;比较有意思跟大家也分享下!!嘿嘿。



评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
有道理,学习了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马