【问题标题】:Shift Operator (<<) Explanation [duplicate]移位运算符 (<<) 解释 [重复]
【发布时间】:2013-11-15 23:17:50
【问题描述】:

谁能告诉我这是在做什么:

    System.out.println(1 << val);

对于 val = 17,答案为:131072

【问题讨论】:

  • 你能解释一下给出的例子吗

标签: java


【解决方案1】:

1的二进制表示是00000000000000000000000000000001

1 &lt;&lt; 17 会将二进制表示中的最后一个1 向左移动 17 位,这将导致 0000000000000100000000000000000,转换回十进制结果为 131072

【讨论】:

    【解决方案2】:

    http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html

    这是一个按位运算。基本上,您正在移动最初构成变量的位,然后这些位现在代表一个新数字。

    在这种情况下,您向左移动了几个位置,这会突然在您的数字中添加更多位...为其添加更大的值。

    How do shift operators work in Java?

    【讨论】:

      猜你喜欢
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 2010-10-02
      • 1970-01-01
      • 2019-02-16
      • 2014-12-29
      • 2016-11-22
      相关资源
      最近更新 更多