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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小蚊子 中级黑马   /  2013-12-21 22:26  /  1133 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面代码的运行结果为什么不是-1??

97HIN8{KP]2ZQ4UCFRNKUVL.jpg (23.25 KB, 下载次数: 35)

97HIN8{KP]2ZQ4UCFRNKUVL.jpg

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 下次要把代码放代码框里,不然不给技术分了.

查看全部评分

4 个回复

倒序浏览
首先变为byte类型的时候是-1,而变为char的时候是字符类型变为?这个字符,这时再将?转为int类型
回复 使用道具 举报
首先要明确byte的取值范围:     一:128 到127     二:-255 到 256    三:-65535 到 65536
char是对byte的强制转换,而int又将char强制转化为整数型,
并且byte此时的默认选取值为65536减掉最后运算的1,结果就等于65535

评分

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

查看全部评分

回复 使用道具 举报
接楼上!手一抖少了个负号,byte的取值范围的第一种情况改为:    -128 到127
回复 使用道具 举报
①byte -->有-1这个值,在这里没有变化。②char -->是符号,范围0-65535。问题就在这里,这里没有-1,发生异常。它的异常处理方式:(0-65535)-->(0-65535)-->(0-65535)...不断循环(int转型之后的对应数字)。

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 不够详细、认真。

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马