【问题标题】:Java << Operator [duplicate]Java << 运算符 [重复]
【发布时间】:2011-11-06 19:12:07
【问题描述】:

可能重复:
What is the following sign: <<?

有人可以解释以下示例代码中的吗?

final static public int MY_VAR = 1<<3;

谢谢!

【问题讨论】:

  • 我没有找到任何搜索“java
  • "java operator" 会给出 lucapette 发布的链接。

标签: java operators


【解决方案1】:

它是 2 的 3 次方。 这是一个按位运算符 SHIFT_LEFT: 0001 => 0100

【讨论】:

    【解决方案2】:

    &lt;&lt;left shift operator。

    基本上,它将左侧值中的每一位向左移动一个由右侧值指示的量。

    所以在本例中,0b1(十进制 1)变为 0b1000(十进制 8)。

    在this tutorial 中解释并在this Wikipedia article 中说明。

    【讨论】:

      【解决方案3】:

      有符号左移运算符“, 并且带符号的右移运算符“>>”将位模式移到 正确的。位模式由左侧操作数给出,而 右手操作数移位的位置数。未签名的 右移运算符“>>>”将零移到最左边的位置, 而“>>”之后最左边的位置取决于符号扩展。

      [Source]

      【讨论】:

        【解决方案4】:

        这是按位左移运算符。它向左移动位,如下所示:

        00000001 << 3 == 00001000
        

        换句话说,1 &lt;&lt; 3 == 8,因为您将 1 位移动了 3 个位置。

        【讨论】:

          【解决方案5】:

          它是一个位移运算符。有关文档,请参阅 http://download.oracle.com/javase/tutorial/java/nutsandbolts/op3.html。

          【讨论】:

            【解决方案6】:

            当然,它是 left shift - 您将数字“1”左移 3 位,因此结果将是 8。

            有关详细信息,请参阅 Java 语言规范的 section 15.19。

            【讨论】:

              猜你喜欢
              • 2012-08-23
              • 2013-09-07
              • 2014-05-10
              • 1970-01-01
              • 2023-03-29
              • 2011-04-15
              • 2012-05-26
              • 2010-10-02
              • 2014-09-29
              相关资源
              最近更新 更多