我們以 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(補)
