黑马程序员技术交流社区

标题: 请大家帮我看看 [打印本页]

作者: beimenshisan    时间: 2015-8-14 22:24
标题: 请大家帮我看看
byte a = 2;
byte b= 3;
byte c = a + b;

以上这个为啥总是会编译无法通过啊.,变量我全部都定义的byte呀!!
作者: andyli    时间: 2015-8-14 22:32
简单啊,BYTE 全部改成INT 就好 要强转
作者: pengbeilin    时间: 2015-8-14 23:50
本帖最后由 pengbeilin 于 2015-8-14 23:52 编辑
  1. //首先你要知道byte是一个字节,int是4个字节的!
复制代码

作者: 一叶泛舟    时间: 2015-8-14 23:52
最后a b会默认为Int
作者: iamzk    时间: 2015-8-14 23:57
这涉及到自动类型提升,即:byte,short等小于int类型精度的类型在参与运算是时会自动提升为int.所以,a+b的计算结果为int,将intl类型赋值给byte当然不合法!
作者: burningzzy    时间: 2015-8-15 00:13
变量在运算时自动转换为int类型,应该为byte c=(byte)(a+b);




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