开发者社区> 问答> 正文

两个byte变量相加报错,两个int变量相加不报错? ?报错

byte a=3,b=4,c;
c=a+b;
报错
int a=3,b=4,c;
c=a+b;
不报错

byte报错我可以理解,int为什么不报错?

展开
收起
爱吃鱼的程序员 2020-06-23 14:08:14 564 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    byte想加溢出的概率比int高很多。都限制,对于int不方便,都不限制,对byte,容易出现不容易发现错误。所以语法这么规定。

    为啥会报错……又没超出int长度……

    bytec=(byte)(a+b);

    在java中,byte、short、char类型的变量在做运算时会自动向上转型为int。
    bytea=3,b=4,c;
    c=a+b;
    其中:a+b表达式的值为int,而接收变量c为byte(范围低,编译器报精度损失错);

    inta=3,b=4,c;
    c=a+b;
    而这个表达式a+b俩个int相加还是int,接收变量是int,不会报错。

    另:好的编程从习惯开始,定义变量最好一行一个

    肯定阿,两个byte相加的结果编译器默认为int类型,Int转byte就会报错,intc=a+b就没问题

    2020-06-23 14:08:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载