原碼、反碼、補碼區別


 我們以 int 類型的數1為例,因為int類型的數占用4字節(32位),每個字節8bit。

所以整數1在計算機中表示為:

00000000 00000000 00000000 00000001(原)

32位,所以需要填一堆0.。這個就是原碼。

——  原碼:一個整數,按照絕對值大小轉換成的二進制數,稱為原碼。

——  反碼:將二進制數按位取反,所得的新二進制數稱為原二進制數的反碼。取反操作:0變1,1變0。

00000000 00000000 00000000 00000001的反碼為 

11111111 11111111 11111111 11111110(反)

——  補碼:補碼:反碼加1稱為補碼。

划重點的,補碼就是負數在計算機中的二進制表示方法。

意思就是說,負數在二進制中的表示,是通過對應絕對值(整數),先寫成對應的原碼,然后得到反碼,然后將反碼加上1,所得數稱為補碼。補碼就是負數。

因此-1在計算機中用二進制表示的過程:通過1變成原碼,按位取反獲得反碼,然后在最后一位加一就得到

11111111 11111111 11111111 11111111(補)


免責聲明!

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



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