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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

   
b1和b2都定义为byte类型,相乘的话也应该是byte类型,为什么不能赋值给 byte b3 呢?

  以下代码的运行结果为?
classTest{
    public static void main(String[]args){
byteb1 = 5;
byteb2 = 2;
byteb3 = b1*b2;  
          }
}
A       10
B       52
C       编译错误
D      以上都不对

11 个回复

倒序浏览
byte类型数据在运行时 默认转换成int类型
回复 使用道具 举报
两个btye数据类型的变量 参与运算的时候会自动类型提升为int 类型 结果也是int 类型, 那么第三句就会报类型转换异常
回复 使用道具 举报
C       编译错误
回复 使用道具 举报
先提升为int类型了,int类型不能赋值给byte
回复 使用道具 举报
byteb3 = b1*b2; 此时的b1,b2会默认转化为int类型,int类型数据不能赋值给byte类型
回复 使用道具 举报
楼上正解啊
回复 使用道具 举报
会有自动类型提升的,不过可以加强转吧
回复 使用道具 举报
这个,加强转
回复 使用道具 举报
来个byte强转
回复 使用道具 举报
b1和b2相乘时默认转换成了int类型,所以 编译错误。
回复 使用道具 举报
这个有可能损失精度
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马