wojavaandta 2015-04-06 05:47 采纳率: 100%
浏览 2754
已采纳

关于自动提升int类型疑问?

byte b1= 1;
byte b2 =2;
byte b3 =b1+b2;
这种编译为什么会报错,求指导?

  • 写回答

6条回答 默认 最新

  • danielinbiti 2015-04-06 13:06
    关注

    当使用+、-、*、/、%运算符对基本类型进行运算时,遵循如下规则:
    只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;
    否则,只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;
    否则,只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;
    否则,两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。

    当使用+=、-=、*=、/=、%=、运算符对基本类型进行运算时,遵循如下规则:
    运算符右边的数值将首先被强制转换成与运算符左边数值相同的类型,然后再执行运算,且运算结果与运算符左边数值类型相同。

    比如上面 b3+=b1;b3+=b2;这样都是没问题的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复