黑马程序员技术交流社区

标题: 关于数据类型的问题 [打印本页]

作者: 张盼    时间: 2014-6-15 21:58
标题: 关于数据类型的问题
本帖最后由 张盼 于 2014-6-15 22:34 编辑

在数据类型中为什么会这样?


被注释掉的为什么可以运行?

搜狗截图20140615215411.png (9.44 KB, 下载次数: 24)

原代码

原代码

搜狗截图20140615215432.png (2.51 KB, 下载次数: 33)

错误提示

错误提示

作者: alive    时间: 2014-6-15 22:08
b =3 + 4 右边得到的int类型值7,在byte类型范围内,会转成byte类型数据,赋值给b。而b = b1 + b2 因为b1 ,b2是变量,大小是不能确定的,得到的结果有可能会超出byte类型的范围,所以编译会报错.j。java默认的数据类型是int,你把b的值改成int就不会出问题了。希望能帮到你。
作者: moon1993zs    时间: 2014-6-15 22:20
运算之后会变成提升为int 类型。你强转一下就可以了。
作者: ゞ导火索゛    时间: 2014-6-15 22:31
byte类型在运算时会自动转化成int型,如果计算结果超出了byte的范围,则会失去精度
作者: 张盼    时间: 2014-6-15 22:33
alive 发表于 2014-6-15 22:08
b =3 + 4 右边得到的int类型值7,在byte类型范围内,会转成byte类型数据,赋值给b。而b = b1 + b2 因为b1  ...

明白了,谢谢
作者: 华子    时间: 2014-6-15 23:05
围观下,看看高手们怎么回答的




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