2013-06-29 206 views
2

大家好我有一個與循環〜運營商 以前從未發現這對任何代碼什麼〜運營商

for (int i = 0; i < bytes.length; i++) { 
     mashed[i] = (byte) ~bytes[i]; 

     } 

什麼的〜做的?

我還沒有發現這樣的事情在互聯網上或任何 所以也許有人可以幫助我在此先感謝

+0

作爲除了貼答案:位運算和位移運算符(http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html)和[所述Java®的語言規格:15.15.5。Bitwise Complement Operator〜](http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.15.5) – informatik01

回答

2

它是位操作符,其將不適用的數據的每個比特門。例如,當數據位101,那麼這將成爲010

2

~是按位反轉 - 0變成1秒,1秒變0。

2

~操作是按位NOT,它反轉在一個二進制數位:

NOT 011100 
    = 100011 
2

docs

一元按位求補運算符 「〜」 反轉的位模式;它可以應用於任何整數類型,使得每個「0」爲「1」,每個「1」爲「0」。例如,一個字節包含8位;將該運算符應用 到其位模式爲「00000000」的值將其模式變爲 其模式爲「11111111」。

3

從Java的教程,http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html

一元位求補運算符 「〜」 反轉位模式;它可以應用於任何整型,使得每個「0」爲「1」,每個「1」爲「0」。例如,一個字節包含8位;將該運算符應用於位模式爲「00000000」的值將其模式更改爲「11111111」。

1

Tilde(〜)對數值進行按位補語。

1011 0011 = ~0100 1100