位運算子解析 理解(詳細說明)

2021-09-02 16:05:31 字數 952 閱讀 3534

^ 異或  兩邊的位不同時結果為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,記錄...