移位运算符(<<<)说明

时间:2013-11-15 23:17:51

标签: java

任何人都可以告诉我这是做什么的:

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

对于val = 17,答案如下:131072

2 个答案:

答案 0 :(得分:1)

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

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

在这种情况下,你向左移动了几个点,这突然在你的数字中增加了更多的位......为它增加了一个更大的值。

How do shift operators work in Java?

答案 1 :(得分:1)

1的二进制表示是00000000000000000000000000000001

1 << 17会将二进制表示中的最后1移动到左侧17个位置,这将导致0000000000000100000000000000000,当转换回十进制结果时为131072