python的取反運算


今天在看到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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM