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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

课上老是提出的问题:
byte a = 3;
byte b = 4:
byte c = a+b;
byte d =3+4;
编译结果byte c 这句是错误的,既然 a ,b 已经定义过了是byte类型的,为什么a + b不能赋值给byte类型的c 呢,哪位大牛知道,请详细告知,谢谢~

7 个回复

倒序浏览
因为蕴含 隐式转换 当  byte a = 3;  byte b = 4; 付完值之后 会自动提升为int类型 在赋值给 byte时 所以就会出现损失精度的情况  
回复 使用道具 举报
byte short 类型在计算时 会自动转化为 int类型
回复 使用道具 举报
楼上正解!
回复 使用道具 举报
白面馅包子 发表于 2015-7-8 23:51
因为蕴含 隐式转换 当  byte a = 3;  byte b = 4; 付完值之后 会自动提升为int类型 在赋值给 byte时 所以 ...

谢谢了,我又仔细看了下视频,现在明白了些,先记住吧
回复 使用道具 举报
wx_HWRW5aF7 发表于 2015-7-9 00:04
byte short 类型在计算时 会自动转化为 int类型

谢谢了,我又仔细看了下视频,现在明白了些,先记住吧
回复 使用道具 举报

谢谢大家,现在看明白了,对概念的知识要认真看
回复 使用道具 举报
byte c = a+b 右边自动 提升为int类型,左边是byte类型,两边类型不匹配,所以出错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马