這里有一個0值的差別。
以最簡單的單字節char型為例。占8位,最高位為符號位。
這樣0值就有了
0000 0000 (正零)
1000 0000 (負零)
兩種。
從數學角度上,是沒區別的,可是用兩種形式表示一個數,明顯是浪費了。
於是計算機存儲就約定,當符號位為0,即正零時才是0.符號位為1時,讓它去表示另外一個數好了。
(上面這句話是重點,讓它表示另外一個數,就代表符號位也會參與取反)
原碼:1000 0000首先符號位為1,是個負數,
反碼,0111 1111
補碼,1000 0000
又回來了… 但這時代表的就是值了,注意這里的1已經不是符號位了。計算其值就是128.
於是 1000 0000就表示成了-128
說白了就是:10000~~0代表的是負數中的最后一個數,並不是零,這一點弄懂就行了。
————————————————
版權聲明:本文為CSDN博主「LingXi__Y」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lingxi__y/article/details/79569668
