1. 程式人生 > >邏輯運算與位運算區別

邏輯運算與位運算區別

位運算:

位運算是講資料先轉化為二進位制數,再逐位(bit)按規則計算
1.“按位與”運算子“&”,規則:全1則1,否則為0
例如:
a       00000000 00000000 00000000 00000111
b   ^  10000001 10100101 11110011 10101011
c       00000000 00000000 00000000 00000011
4      10000001 10100101
2.“按位或”運算子“|”,規則:全0則0,否則為1。
3.“按位非”運算子“~”,規則:遇1則0,遇0則1。
4.“按位異或”運算子“^”,規則:相同為0,不同為1。

異或演算法是可逆的,如果對某個資料a進行兩次相同的異或運算,則結果會還原為a。

邏輯運算子(&&、||)與位運算子(&、|)的區別:

1. 邏輯運算子只能針對boolean型別進行邏輯運算,而位運算還可以對數值進行邏輯運算。

2. 邏輯運算子有短路情況,即前面的表示式可以得到最終結果時,後面的表示式將不被執行。