Python 練習(xí)實例55

python 練習(xí)實例55

python 編程100例python 編程100例

題目:學(xué)習(xí)使用按位取反~。

說明:

二進制數(shù)在內(nèi)存中以補碼的形式存儲。

按位取反:二進制每一位取反,0 變 1,1 變 0。

最高位為符號位,正數(shù)的符號位為 0,負數(shù)為 1。

對正數(shù)來說,最高位為 0,其余各位代表數(shù)值本身(以二進制表示),如 +42 的補碼為 00101010。

對負數(shù)而言,把該數(shù)絕對值的補碼按位取反,然后對整個數(shù)加 1,即得該數(shù)的補碼。如 -42 的補碼為 11010110(00101010 按位取反

11010101+1 即 11010110)。

~9 的計算步驟:

轉(zhuǎn)二進制:0 1001
計算補碼:0 1001
按位取反:1 0110

轉(zhuǎn)為原碼:

按位取反:1 1001  
末位加 1:1 1010
符號位為 1 是負數(shù),即 -10

實例:

#!/usr/bin/python
# -*- coding: utf-8 -*-

a = 7
b = ~a

c = -7
d = ~c

print ('變量 a 取反結(jié)果為: %d' % b)
print ('變量 c 取反結(jié)果為: %d' % d)

以上實例中輸出結(jié)果為:

變量 a 取反結(jié)果為: -8
變量 c 取反結(jié)果為: 6

說明:

  • ~7,對 7 進行取反,7 的補碼是 00000111 對補碼取反得到 11111000,最高位 1 為符號位,表示負數(shù),所以該補碼對應(yīng)的整數(shù)為 -8。

  • ~-7 對 -7 進行取反,-7 的補碼是 11111001 對補碼取反得到 00000110,最高位 0 為符號位,表示正數(shù),所以補碼對應(yīng)的整數(shù)為 6。

python 編程100例python 編程100例

下一節(jié):python 練習(xí)實例56

python 編程100例

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频