任何人都可以告诉我这是做什么的:
System.out.println(1 << val);
对于val = 17,答案如下:131072
答案 0 :(得分:1)
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
这是一个按位操作。基本上你正在移动最初构成变量的位,然后这些位现在代表一个新数字。
在这种情况下,你向左移动了几个点,这突然在你的数字中增加了更多的位......为它增加了一个更大的值。
答案 1 :(得分:1)
1的二进制表示是00000000000000000000000000000001
1 << 17
会将二进制表示中的最后1
移动到左侧17个位置,这将导致0000000000000100000000000000000
,当转换回十进制结果时为131072