【问题标题】:What does the binary operator << mean?二元运算符 << 是什么意思?
【发布时间】:2014-08-06 10:05:17
【问题描述】:

在java中有>>、>>操作符。

根据Java doc

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

我是二进制数据的新手,我发现这个解释有点模棱两可,没有示例或用例。 谁能给我一个这些运算符的示例或用例?

谢谢,

【问题讨论】:

  • Google for Java 移位运算符。也不要害怕尝试一下。

标签: java binary


【解决方案1】:

Java Doc

有符号左移运算符“>”将位模式右移。位模式由左侧操作数给出,要移位的位置数由右侧操作数给出。无符号右移运算符“>>>”将零移到最左边的位置,而“>>”之后的最左边的位置取决于符号扩展。

【讨论】:

  • 我已经读过这篇文章,但我发现它模棱两可,可能是因为我不熟悉二进制数据。这就是为什么我需要一些例子。
【解决方案2】:
    public class Test {

      public static void main(String args[]) {
         int a = 60;    /* 60 = 0011 1100 */  
         int b = 13;    /* 13 = 0000 1101 */
         int c = 0;

         c = a << 2;     /* 240 = 1111 0000 */
         System.out.println("a << 2 = " + c );
    //this will shift the binary version of a to two bits left side and insert zero in remaining places
         c = a >> 2;     /* 215 = 1111 */
         System.out.println("a >> 2  = " + c );
    //this will shift the binary version of a to left by two bits right  insert zero in remaining places
         c = a >>> 2;     /* 215 = 0000 1111 */
         System.out.println("a >>> 2 = " + c );
//this will shift the binary of a to 3bits right  insert zero in remaining places
      }
    } 

【讨论】:

    【解决方案3】:

    我们有以下十进制和二进制数字:

    8 = 0000 1000

    15 = 0000 1111

    10 = 0000 1010

    然后我们使用

    8 0001 0000 = 16

    15 0011 1100 = 60

    10 0001 0100 = 20

    如您所见,运算符将数字的二进制表示移动右操作数给出的位数。这样做,您将获得一个新号码。

    【讨论】:

      猜你喜欢
      • 2013-05-07
      • 2015-09-18
      • 2017-03-29
      • 2011-03-16
      • 2011-07-09
      • 2016-07-23
      • 1970-01-01
      相关资源
      最近更新 更多