今天在看到Python的取反運算的時候,發現取反自己理解起來有點不正常
於是查詢后了解如下:
比如一個數 3 ,它的二進制是 0000 0011,對其進行取反運算 ~3
得到的是 -4,這時候就有些蒙了,對3取反不應該是1111 1100嗎?
其實在python中對一個數進行取反運算,得到的值(1111 1100)是我們要求的數的補碼,現在問題變成了 一個數x的補碼等於1111 1100 我們要求這個x,x的符號由左邊第一位確定,如果為1則為負數,為0則為正數
求一個數的補碼,是對這個數取反,再加一,得到原碼,11111 1100的補碼 0000 0011再加一,得到0000 0100也就是4,加上負號就是-4