python運算符: ^ <<


^表示二進制異或運算

如下表(相同為0,不同為1),顯然異或運算作為一種邏輯運算,有對稱性(a^b=b^a):

 

 

 從左至右進行比對,不足為則用0補缺:

對於 ^ 兩邊的數字都是正數則直接對比計算即可

例如:

7 ^ 10
二進制:0111 ^ 1010
輸出為:1101=13

9 ^ 8
二進制:1001^1000
輸出為:0001即為1

若一邊或兩邊出現負數,則需要進行負數的轉碼

轉碼原理:負數原碼與補碼之間相互轉換

例:

-1 ^ -32

 

-1    二進制為 -1

而-1在計算機中被這樣轉換

原碼:1000 0001

反碼:1111 1110

補碼:1111 1111

 

-32  二進制為 -100000

而-1在計算機中被這樣轉換

原碼:1010 0000

反碼:1101 1111

補碼:1110 0000

 

-1  ^  -32  =>  31
# 1111 1111 ^ 1110 0000 =>  00011111  =>31

 

<< 左移動運算符:

運算數的各二進位全部左移若干位,由 << 右邊的數字指定了移動的位數,高位丟棄,低位補0;

-1 << 5  => -100000
#-100000 = -32

另還有>>右移動運算符,原理一致

其他運算符

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a  = 1100 0011

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM