大家好我有一個與循環〜運營商 以前從未發現這對任何代碼什麼〜運營商
for (int i = 0; i < bytes.length; i++) {
mashed[i] = (byte) ~bytes[i];
}
什麼的〜做的?
我還沒有發現這樣的事情在互聯網上或任何 所以也許有人可以幫助我在此先感謝
大家好我有一個與循環〜運營商 以前從未發現這對任何代碼什麼〜運營商
for (int i = 0; i < bytes.length; i++) {
mashed[i] = (byte) ~bytes[i];
}
什麼的〜做的?
我還沒有發現這樣的事情在互聯網上或任何 所以也許有人可以幫助我在此先感謝
它是位操作符,其將不適用的數據的每個比特門。例如,當數據位101,那麼這將成爲010
其~ bitwise NOT
按位不是一個操作符「〜」操作符反轉每一位操作數,即該運營商改變了所有的那些爲零和所有的零。
而且知道如何在內部工作原理:How does the bitwise complement (~) operator work?
的~
是按位反轉 - 0變成1秒,1秒變0。
的~
操作是按位NOT,它反轉在一個二進制數位:
NOT 011100
= 100011
從docs:
一元按位求補運算符 「〜」 反轉的位模式;它可以應用於任何整數類型,使得每個「0」爲「1」,每個「1」爲「0」。例如,一個字節包含8位;將該運算符應用 到其位模式爲「00000000」的值將其模式變爲 其模式爲「11111111」。
從Java的教程,http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html,
一元位求補運算符 「〜」 反轉位模式;它可以應用於任何整型,使得每個「0」爲「1」,每個「1」爲「0」。例如,一個字節包含8位;將該運算符應用於位模式爲「00000000」的值將其模式更改爲「11111111」。
Tilde(〜)對數值進行按位補語。
1011 0011 = ~0100 1100
作爲除了貼答案:位運算和位移運算符(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