用於提高運算速度,規避算術運算符
在位操作運算中,不應該試圖考慮先得到一個數的二進制碼 ,而是應該將這個數看作是一個二進制碼,二進制補碼與整數之間是一一對應的.
誠然Python中有內置函數bin將一個整數轉換位二進制,python中使用該函數轉換位負數,斌不是其補碼.
因此不能先得到該數的二進制碼. 同時絞盡腦汁得到一個屬的二進制補碼是沒有必要的!
& : 按位與操作, 只有 1&1 為 1, 其它情況為 0. 可用於進位運算
| : 按位或操作 , 只有 0|0 為0 ,其他情況為1
~ : 逐位取反
^ : 異或, 相同為 0 ,相異為 1 . 可用於加操作 (不包括進位項 )
<< : 左移操作, 2的冪有關
>> : 右移操作, 2的冪有關
-
交換律:a ^ b ^ c <=> a ^ c ^ b
-
任何數於0異或為任何數 0 ^ n => n
-
相同的數異或為0: n ^ n => 0
var a = [2,3,2,4,4]
2 ^ 3 ^ 2 ^ 4 ^ 4等價於 2 ^ 2 ^ 4 ^ 4 ^ 3 => 0 ^ 0 ^3 => 3
異或:相同為0,不同為1. 異或同一個數兩次,原數不變。

