2012-03-23 140 views
3

我不知道这是什么意思 “1 < < 2”:什么是Java(1 << 2)这个表达式?

public static final int MODIFY_METADATA = 1 << 2; // modify object 

请帮帮我!

+0

http://en.wikipedia.org/wiki/Bitwise_operation#Bit_shifts – Mysticial 2012-03-23 01:41:04

+0

类似的问题已经在SO上提出并回答,例如[here](http://stackoverflow.com/q/9207007/960195)。 – 2012-03-23 01:47:38

回答

4

Java Operators

Bitwise Operations

<<是左移位运算符。

+1

SO在你的例子,这是1个比特移位2到左侧,其中evalulates至4 – 2012-03-23 01:44:26

+1

@ChrisWhite'1 << 2 = 4',是的。 – Jeffrey 2012-03-23 01:45:57

+0

哦,太感谢你了^^ – thuclh 2012-03-23 01:48:31

3

如果你想知道为什么会用使用1 << 2而不是4这是相同的价值,因为你明确地要使用一个位掩码例如

public static final int FLAG0 = 1 << 0; 
public static final int FLAG1 = 1 << 1; 
public static final int MODIFY_METADATA = 1 << 2; 

显示每个值位掩码。

相关问题