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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Running 中级黑马   /  2014-6-21 17:07  /  1734 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用有效算法算出2乘17等于多少?
class JiSuan
{
    public static void main(String[] args)
    {
      System.out.println(2<<4+2);   //将2左移4为,再加上2
    }
}


为什么输出结果会是128呢?请问程序那里出现了问题???

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

14 个回复

倒序浏览
luojunwei1992 来自手机 中级黑马 2014-6-21 17:35:59
沙发
加号优先级高于<<,先进行的是加法运算,加个括号就好了

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报

哦哦哦,对对。
回复 使用道具 举报
加号优先级的问题,学习了
回复 使用道具 举报
先运行2<<4,再在此基础上加2,加个括号就OK了
回复 使用道具 举报
同样也学习了!原来加号优先级高于移位操作符。
回复 使用道具 举报
qincai 中级黑马 2014-6-22 23:37:16
7#

+1,原来是这样
回复 使用道具 举报
idency 高级黑马 2014-6-22 23:46:42
8#
  1. public class Demo {
  2.         public static void main(String[] args) {
  3.                 System.out.println(17<<1);
  4.         }
  5. }
复制代码

点评

这个才是正解!乘以2,直接17<<1,乘以4,直接17<<2,......为什么要把那么简单的搞的那么复杂呢!  发表于 2014-6-23 01:27
我觉得你这个答案是对的,上面的就算是加上括号好像也不是2*17吧?  发表于 2014-6-23 00:31
回复 使用道具 举报
小夜 中级黑马 2014-6-23 00:32:11
9#
学习了。。。。
回复 使用道具 举报
受教了。。。。
回复 使用道具 举报
学习了。。
回复 使用道具 举报
M路 中级黑马 2014-6-23 06:00:25
12#
学习了!
回复 使用道具 举报
学习了,运算符优先级问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马