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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 生牛排 中级黑马   /  2016-7-22 23:20  /  483 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
上面两句错误提示为什么是第一句,数值运算不是先转换成int吗?

4 个回复

正序浏览
前排围观
回复 使用道具 举报
果然还是大神解释的清楚呀
回复 使用道具 举报
还是斑竹厉害........
回复 使用道具 举报
b=b1+b2;  先运算b1+b2;确实隐式转换成int类型了,但前面b=就是运算后的值还是要付给byte类型的b变量。运算的结果隐式转换成int了,在往byte类型的b里赋值,就报错容易损失精度。:b=3+4;  3+4是常量,计算机知道运算的结果没超出byte范围,所以不隐式转换,byte的值往byte里赋,自然不会报错了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马