Python的按位取反運算子

2021-08-15 10:17:29 字數 721 閱讀 6752

按位取反運算子~很少用到,今天看《byte of python》書中舉例,這裡學習一下,再複習一下計算機的基礎知識。

按位取反運算子,用來對乙個二進位制數按位取反,即將0變1,將1變0,按理說十進位制的5(0000 0101)按位取反應該為(1111 1010)十進位制250,但是在python中運算結果並非如此,結果如下:

>>> ~-6

5

計算機中的符號數有三種表示方法,即原碼、反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號位都是用0表示「正」,用1表示「負」,而數值位,三種表示方法各不相同。在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。

正整數的補碼是其二進位制表示,與原碼相同 。

負整數的補碼,將其對應正數二進位制表示所有位取反(包括符號位,0變1,1變0)後加1。

python按位取反運算:

>>> ~-6

5

運算分析:

-6的補碼是+6(0000 0110)取反後再+1,為(1111 1001)+(0000 0001)=(1111 1010),

,也就是計算機中-6是用(1111 1010)來儲存的,(1111 1010) 按位取反得到(0000 0101)這就是答案5

按位運算子 python

按位運算子是二進位制的運算子,計算結果為int型。a 11 2print type a a 結果是21.將兩個數都化為二進位制,11 1011 2 10 2.將位數少的用0補齊,在左邊補0與位數多的位數一致,例如2 0010 3.將11與補齊後的2,每一位進行比較,若相同位都為1,就取1反之取0 4...

按位取反符

二進位制數在記憶體中以補碼的形式儲存。按位取反 二進位制每一位取反,0變1,1變0。9的計算步驟 轉二進位制 0 1001 計算補碼 0 1001 按位取反 1 0110 轉為原碼 按位取反 1 1001 末位加一 1 1010 符號位為1是負數,即 10 var x 10 在計算機中乙個整型數4位...

運算子的計算(按位與 按位或 異或 取反)

運算規則 依次比較兩個二進位制數的每一位,按照有0則0,否則為1的規則,依次計算出乙個新的二進位制數 即 0 0 0 0 1 0,1 0 0,1 1 1 例 39 21 0010 0111 0001 0101 0000 0101 運算規則 依次比較兩個二進位制數的每一位,按照有1則1,否則為0的規則...