負數二進制在32位int表示


在計算機中,負數以其正值的補碼形式表達
什么叫補碼呢?這得從原碼,反碼說起。
原碼:一個整數,按照絕對值大小轉換成的二進制數,稱為原碼。
比如 00000000 00000000 00000000 00000101 是 5的 原碼。
反碼:將二進制數按位取反,所得的新二進制數稱為原二進制數的反碼。
取反操作指:原為1,得0;原為0,得1。(1變0; 0變1)
比如:將 00000000 00000000 00000000 00000101每一位取反,得 11111111 11111111 11111111 11111010
稱: 11111111 11111111 11111111 1111101000000000 00000000 00000000 00000101 的反碼。
反碼是相互的,所以也可稱:
11111111 11111111 11111111 1111101000000000 00000000 00000000 00000101 互為反碼。
補碼:反碼加1稱為補碼。
也就是說,要得到一個數的補碼,先得到反碼,然后將反碼加上1,所得數稱為補碼。
比如: 00000000 00000000 00000000 00000101的反碼是: 11111111 11111111 11111111 11111010
那么,補碼為:
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011
整數-1在計算機中如何表示。
假設這也是一個 int類型,那么:
1、先取1的原碼: 00000000 00000000 00000000 00000001
2、得反碼:     11111111 11111111 11111111 11111110
3、得補碼:     11111111 11111111 11111111 11111111
-1在計算機里用二進制表達就是全1。

 


免責聲明!

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



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