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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© beimenshisan 中级黑马   /  2015-8-14 22:24  /  282 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

byte a = 2;
byte b= 3;
byte c = a + b;

以上这个为啥总是会编译无法通过啊.,变量我全部都定义的byte呀!!

5 个回复

倒序浏览
简单啊,BYTE 全部改成INT 就好 要强转
回复 使用道具 举报
本帖最后由 pengbeilin 于 2015-8-14 23:52 编辑
  1. //首先你要知道byte是一个字节,int是4个字节的!
复制代码
回复 使用道具 举报
最后a b会默认为Int
回复 使用道具 举报
iamzk 来自手机 中级黑马 2015-8-14 23:57:24
报纸
这涉及到自动类型提升,即:byte,short等小于int类型精度的类型在参与运算是时会自动提升为int.所以,a+b的计算结果为int,将intl类型赋值给byte当然不合法!
回复 使用道具 举报
变量在运算时自动转换为int类型,应该为byte c=(byte)(a+b);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马