2012-03-23 310 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; 

顯示每個值位掩碼。

相關問題