黑马程序员技术交流社区

标题: 请解释?? [打印本页]

作者: 小蚊子    时间: 2013-12-21 22:26
标题: 请解释??
下面代码的运行结果为什么不是-1??

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

97HIN8{KP]2ZQ4UCFRNKUVL.jpg

作者: kun1990    时间: 2013-12-21 22:43
首先变为byte类型的时候是-1,而变为char的时候是字符类型变为?这个字符,这时再将?转为int类型
作者: 于磊    时间: 2013-12-21 23:09
首先要明确byte的取值范围:     一:128 到127     二:-255 到 256    三:-65535 到 65536
char是对byte的强制转换,而int又将char强制转化为整数型,
并且byte此时的默认选取值为65536减掉最后运算的1,结果就等于65535
作者: 于磊    时间: 2013-12-21 23:17
接楼上!手一抖少了个负号,byte的取值范围的第一种情况改为:    -128 到127
作者: 刘旭升    时间: 2013-12-21 23:27
①byte -->有-1这个值,在这里没有变化。②char -->是符号,范围0-65535。问题就在这里,这里没有-1,发生异常。它的异常处理方式:(0-65535)-->(0-65535)-->(0-65535)...不断循环(int转型之后的对应数字)。




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