python中的按位與 +按位或+ 按位反+異或運算 +左移+右移


 

1. 按位與

       按位與是針對二進制數的操作,指將兩個二進制數的每一位都進行比較,如果兩個相應的二進位都為 1 則此位為 1,否則為 0。在本例中, 5 的二進制表達為 101 , 3 的二進制表達為 11 (為補全位數進行按位操作寫作 011 ),則按位與操作后的結果為001 ,對應的十進制數為 1 。 

詳細: 3 & 5 —— 00000011 & 00000101 = 0000 0001 即為 1

 

2. 按位或

       按位或是針對二進制數的操作,指將兩個二進制數的每一位都進行比較,如果兩個相應的二進位有一個為 1 則此位為 1,否則為 0。在本例中, 101 與 011 進行按位或操作后的結果為 111 ,對應十進制數為 7 。 

詳細:3 | 5 —— 00000011 | 0000 0101 = 0000 0111 即為7

 

3. 按位異或

       按位異或是針對二進制數的操作,指將兩個二進制數的每一位都進行比較,如果兩個相應的二進位不同則此位為 1,相同為 0。在本例中, 101 與 011 進行按位異或操作的結果為 110 ,對應十進制數為 6 。 

詳細例子:


a = 10

b = 100

a = a^b # a = 110

b = b^a # b = 10

a = a^b # a = 100
解釋:(此處的例子證明a b 經過三次異或操作之后,可以實現兩者的數值的交換)

a的二進制  1010   b的二進制  1100100

a    : 0 0 0 1 0 1 0

b    : 1 1 0 0 1 0 0

a^b: 1 1 0 1 1 1 0  ----> 110  (異或:相等為0,不等為1)

b    : 1 1 0 0 1 0 0

b^a: 0 0 0 1 0 1 0  ---->10

a    :  1 1 0 1 1 1 0

a^b: 1 1 0 0 1 0 0  ---->100

 

4. 按位取反

        按位取反也稱作“按位取非”或“求非”或“取反”,沈潔元譯本譯作“按位翻轉”,是針對二進制數的操作,指將兩個二進制數的每一二進位都進行取反操作, 0 換成 1 , 1 換成0 。只需按照給出的公式記憶 ~6 = -(x+1)=-7

詳細:~6 = -(x+1)=-7

 

5. 左移

左移(<<)(由<<右側的數字決定左移幾位,高位丟棄,低位補0)

eg:print(2<<2) 返回8=1000

 

6. 右移

 右移(>>)(由<<右側的數字決定右移幾位,高位丟棄,低位補0)

eg:print(13>>2) 返回3=011


免責聲明!

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



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