黑马程序员技术交流社区
标题:
请解释??
[打印本页]
作者:
小蚊子
时间:
2013-12-21 22:26
标题:
请解释??
下面代码的运行结果为什么不是-1??
97HIN8{KP]2ZQ4UCFRNKUVL.jpg
(23.25 KB, 下载次数: 35)
下载附件
2013-12-21 22:24 上传
作者:
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