^ 異或 兩邊的位不同時結果為1,否則為0
簡訴:這個可以理解f(a!=b) 如果不同結果為1,否則為0
例子:比如 2 ^ 3 == 10^11 第二位都是1所以第二位的0,,第二位不同所以為1 。最終結果01=1
~ 非 0變1 1變0
簡訴:取反。可連線if(!a) 1 變 0 0 變1
例子:比如~2 = 00000000000000000~30個0後面跟10 根據上訴換算出結果-3
& 與 兩邊位都是1為1,其餘是0
簡訴:可直接理解為必須(and),在if判斷&& 2邊都相同才能為1
例子: 2&3 == 10&11 最終結果10 =2
| 或 兩邊只要有乙個為1時等於1,不是的話為0
簡訴:可直接理解為或者。在if判斷時候|| 只要滿足乙個就為1!不是為0
例子:2|3 == 10|11 最終結果11 =3
<< 左移 移位運算子(可簡單理解 左移幾位就成為幾個2)
簡訴:理解為a乘以2的b次方
2<<3 10 左移3位的 10000 最終等於16
>> 右移 高位補符號 移位運算子
簡訴:理解為a除以2的b次方
16>>3 10000右移三位的 10 最終等於2
>>> 無符號右移,高位補0 移位運算子(負數)
-8 >> 3 1111,1111,1111,1000 (具體是因為16位。0000~0000~0000~1000l,反轉得到1111,,1111,1111,0111,在補移位得到值)
在右移三維得到0001,,1111,1111,1111列印得出最終結果
536870911
C 移位運算子詳細說明
為什麼需要移位?移位可以提高 的執行效率,增快執行的速度。向左移n位 等價於 2 n 向右移n位等價於 2 n 以前感覺移位運算子自己挺明白的,也許是學的時間長了,後來一看,忘得差不多了。現在參考一些網上的學習資料,將位移運算子整理一下,作為知識點總結,也算個積累。在講移位運算子之前,先簡單補充一下...
python位運算子詳細介紹
a 60b 13 10進製轉換成二進位制字串 a bin bin a replace 0b b bin bin b replace 0b print a bin 00111100 print b bin 00001101 按位與運算子 參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為...
c 位運算子的理解
問題1 10 1等於多少?問題2 10 1等於多少?儲備知識點 判斷是右位移運算,還是左位移運算?根據位運算子閉口的方向判斷,閉口在右,說明是右位移運算子 閉口在左,說明是左位移運算子 可以想象水流向閉合處流去,水流的方向就是位運算的方向 十進位制轉二進位制的方法 短除法,將被運算的值,除以2,記錄...