這里有一個0值的差別。
以最簡單的單字節char型為例。占8位,最高位為符號位。
這樣0值就有了
0000 0000 (正零)
1000 0000 (負零)
兩種。
從數學角度上,是沒區別的,可是用兩種形式表示一個數,明顯是浪費了。
于是計算機存儲就約定,當符號位為0,即正零時才是0.符號位為1時,讓它去表示另外一個數好了。
(上面這句話是重點,讓它表示另外一個數,就代表符號位也會參與取反)
原碼:1000 0000首先符號位為1,是個負數,
反碼,0111 1111
補碼,1000 0000
又回來了… 但這時代表的就是值了,注意這里的1已經不是符號位了。計算其值就是128.
于是 1000 0000就表示成了-128
原文鏈接:https://blog.csdn.net/LingXi__Y/article/details/79569668