首頁常見問題正文

Python培訓(xùn):按位取反怎么算

更新時間:2022-10-26 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在Python中,按位取反就是將二進制位的每一位進行取反,0取反為1,1取反為0。例如,將9按位取反后的結(jié)果為-10,接下來,帶大家一起分析一下9按位取反后為什么結(jié)果為-10,具體如下:

  (1)將9轉(zhuǎn)換為二進制變成00001001。因為正數(shù)的原碼=反碼=補碼,真正存儲的時候,存儲的就是00001001;

  (2)對9的補碼00001001進行取反操作,取反后結(jié)果為11110110,這是補碼;

  (3)將補碼轉(zhuǎn)為原碼。轉(zhuǎn)換的時候,符號位不變,其他位取反,然后+1得到原碼,結(jié)果為10001010,即-10。

  具體過程如圖2-16所示。

1666755932218_按位取反操作.jpg

  圖2-16 按位取反操作

  從圖2-16中可以看出,當(dāng)將00001001按位取反后,結(jié)果為10001010。為了驗證結(jié)果是否正確,接下來,在代碼中進行測試,具體如下:

>>> a = 9
>>> ~a
-10
>>> bin(~a)
'-0b1010'

  從上述代碼可以看出,9按位取反后,結(jié)果為-10,而-10轉(zhuǎn)換為二進制數(shù)就是10001010。

分享到:
在線咨詢 我要報名
和我們在線交談!