python中的按位取反符號為 ~
定義一個變量為 a=60
在做~a時候,需要經(jīng)歷以下步驟:
1)轉(zhuǎn)換為2進(jìn)制: ?? 0011 1100 (第一位是符號位,0表示正數(shù),1表示負(fù)數(shù))
2)計算補(bǔ)碼: ? ? ? ?? 0011 1100(正數(shù)的補(bǔ)碼不變,負(fù)數(shù)的話,除去符號位,其他按位取反,最后加1)
3)按位取反操作: ? 1100 0011
4)轉(zhuǎn)換為原碼: ? ? ? 1011 1101(補(bǔ)碼的補(bǔ)碼就是原碼)
5)轉(zhuǎn)換為10進(jìn)制: ?? -60
這里補(bǔ)充一下其他的位運算:
& 按位與 ? ? ? ? ?? 都是1就是1
|? 按位或 ? ? ? ? ?? 只要有一個1 就是1
^ 按位異或 ? ? ? ? 只有不同才為1
<< 按位左移 ? ? ?? 按位將1左移(a<<2的結(jié)果就是240)
>> 按位右移 ? ? ?? 按位將1右移(a>>2的結(jié)果就是15)
還有一些非符號的運算符:
舉例a =10 ,b =5
邏輯運算符:
and ? ? ? ? ? ? ? ? ? 返回值:如果a是False則返回False,否則返回b的計算值。
or ? ? ? ? ? ? ? ? ? ?? 返回值:如果a是非0,則返回a的值,否則返回b的值。
not ? ? ? ? ? ? ? ? ?? 返回值:如果a為True返回False,如果a為False返回True。
成員運算符:
用來描述是否在某個序列中
in ? ? ? ? ? ? ? ? ? ? ? ?
not in
身份運算符:
is 是判斷兩個標(biāo)識符是不是引用自一個對象,x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False
is
not is