位運算基本操作總結

一:位運算基本操作知識點

1. 左移操作 a << b

將A的二進制表示的每一位向左移B位,左邊超出的位截掉,右邊不足的位補0
A = 1100  B = 2
A << B = 110000

每左移一位,數值乘以2。


2.右移操作 A >> B , A >>> B

右移操作分爲邏輯右移,和算術右移
算術右移是帶符號的右移,邏輯右移是不帶符號的右移。
算術右移:將A的二進制表示的每一位向右移B位,右邊超出的位截掉,左邊不足的位補符號位的數。
邏輯右移:將A的二進制表示的每一位向右移B位,右邊超出的位截掉,左邊不足的位補0。
C語言:只有邏輯右移 A >> B
JAVA 和 Python中:算術右移 A >> B , 邏輯右移 A >>> B

A = 11111111111111111111111110000001
B = 2
A >> B = 11111111111111111111111111100000
A >>> B = 00111111111111111111111111100000

每右移一位,數值除以2


3.按位與操作 a & b

將A和B的二進制表示的每一位進行與操作,只有兩個對應的二進制位都爲1時,結果位才爲1,否則爲0.
A = 001010
B = 101100
A & B = 001000


4.按位或操作 a | b

將A和B的二進制表示的每一位進行或操作,只要兩個對應的二進制位有一個爲1,結果位就爲1,否則爲0.
A = 001010
B = 101100
A | B = 101110


5.按位非操作 ~ a

將A的二進制表示每一位進行取反操作,如果對應的二進制位爲0,結果位爲1,否則爲0.
 A = 00000000000000000000000000001010
~A = 11111111111111111111111111110101


6.按位異或操作 a ^ b

將A和B的二進制表示的每一位進行異或操作,如果對應的二進制位不同,結果位爲1,否則爲0.
A = 001010
B = 101100
A ^ B = 100110

發佈了36 篇原創文章 · 獲贊 1 · 訪問量 9543
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章