異或 ^ :
相同的為0,不同的為1
例如:
假設原來a,b的值如下:
a = 00000000 00000000 00000000 01100101
b = 00000000 00000000 00000000 10101011
把a,b異或的結果賦給a:
a = a^b = 00000000 00000000 00000000 11001110
再a去異或b,把結果賦給b:
(現在的a是新的值,是原來的a異或原來的b的結果)(b還是原來的b)
b = a^b = 00000000 00000000 00000000 01100101 --> 結果即原來的a
再用a去異或b,把結果賦給a:
(現在的a還是新值的a)(現在的b是新的值,是新值的a異或原來的b的結果,也就是原來的a)
a = a^b = 00000000 00000000 00000000 10101011 --> 即原來的b
所以經過了
a=a^b;
b=a^b;
a=a^b;
之後,結果就是a,b的值交換了。也就是不借用第三個變數,實現兩個值交換。
與運算 & :
只有都為1,結果才為1
或運算 || :
只要有1就為1
非運算 ~ :
取相反值
JAVA中位運算與邏輯運算
位運算 位運算是將資料先轉化為二進位制數補碼形式,再逐位 bit 按規則計算 按位與 運算子 規則 全1則1,否則為0 按位或 運算子 規則 全0則0,否則為1。按位非 運算子 規則 遇1則0,遇0則1。按位異或 運算子 規則 相同為0,不同為1。邏輯運算 邏輯運算是對布林型資料 true或flas...
Java中位運算與邏輯運算
位運算 指將資料先轉換為二進位制補碼形式,在逐位按一定規則進行計算。位運算子 進行位運算的運算子 按位與 運算子 規則 全一則一,否則為零。按位或 運算子 規則 全零則零,否則為一。按位非 運算子 規則 遇一則零,遇零則一。按位異或 運算子 規則 相同為零,不同為一。移位運算子 右移運算子 將二進位...
Java中的邏輯運算子
邏輯或 對於 在if語句中使用 時,表示多個條件都需要判斷,即便有表示式返回true,剩餘條件仍需要判斷。if 1 2 10 0 0 結果報錯,是因為1 2成立,但是後面10 0不成立。短路非 只要有條件返回true,剩餘條件不在判斷,返回true.if 1 2 10 0 0 結果顯示 條件滿足 因...