字节类型 byte x=1; byte y=2; byte z=x+y; 为什么JAVA显示错误?3应该在byte可以显示的范围内啊

[复制链接]
查看11 | 回复4 | 2011-1-26 11:29:22 | 显示全部楼层 |阅读模式
java中byte、short类型相加的时候,都会自动提升到int类型的,所以x + y是int + int-->结果是int需要强制转换为bytebyte z = (byte) ( x +y);
回复

使用道具 举报

千问 | 2011-1-26 11:29:22 | 显示全部楼层
执行‘+’运算时作用在byte上结果就是int,所以执行x+y之后,需要显式的进行类型转换(由高到低),所以应该是z = (byte)(x + y)
回复

使用道具 举报

千问 | 2011-1-26 11:29:22 | 显示全部楼层
x+y返回的应该是int类型,不是byte
回复

使用道具 举报

千问 | 2011-1-26 11:29:22 | 显示全部楼层
byte型数据四则运算时默认转化为int在进行计算byte z = (byte)(y+x)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行