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条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)