瞭解位運算符之前首先要了解二進制。
&(按位與),|(按位或),|(按位異或),|(按位反轉),|(按位左移),|(按位右移),|()
按位與 : & ----------(同爲1,纔是1)
5&3 = 1 ---------- ------> 101 011 001 相同位僅爲個位1 ,故結果爲 1
按位或 :| ----------(一個爲1,就爲1)
5|3 = 7 ---------- ------> 101 011 出現1的位是 1 1 1,故結果爲 111
按位異或 :^ ----------(相同爲0,不同爲1)
5^3 = 6 ---------- ------> 101 011 對位相加是 1 1 0,故結果爲 110
比如:a=10, b=100
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
————————————————
版權聲明:本文爲CSDN博主「__IProgrammer」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wang785994599/article/details/80924285
按位反轉 :~ (將二進制數+1之後乘以-1)
~5 = -6 ---------- ------> ~x = -(x+1),-(101 + 1) = -110
~7 = -(0111+1)= -1000 = -8
按位左移 :<< (向左移動n位然後空位補0)
5<<2 = 20 ---------- ------> 101 向左移動2位得到 10100 ,即右面多出2位用0補
按位右移 :>> (向右移動n位然後空位補0)5>>2 = 1 ---------- ------> 101 向右移動2位得到 001 ,即左邊用0補