C語言基礎(chǔ)知識—計算機(jī)內(nèi)存數(shù)值存儲方式
1>.原碼
一個數(shù)的原碼(原始的二進(jìn)制碼)有如下特點(diǎn):
最高位作為符號位,0表示正,1表示負(fù);
其它數(shù)值部分都是數(shù)值本身絕對值的二進(jìn)制數(shù);
負(fù)數(shù)的原碼是在其絕對值的基礎(chǔ)上,最高位變?yōu)?/span>1;
舉個例子,我們用一個字節(jié)的原碼來表示+15,-15,+0,-0
+15 : 0000 1111
-15 : 1000 1111
+0 : 0000 0000
-0 : 1000 0000
原碼表示方法簡單易懂,帶有符號數(shù)本身轉(zhuǎn)換方便,只要符號位還原即可,但當(dāng)兩個整數(shù)相減或不同符號相加時,必須比較兩個數(shù)哪個絕對值大,才能決定誰減誰,才能確定結(jié)果是正還是負(fù),所以原碼不便于加減運(yùn)算。
2>.反碼
一個數(shù)的反碼(原始的二進(jìn)制碼)有如下特點(diǎn):
對于正數(shù),反碼與原碼相同;
對于負(fù)數(shù),符號位不變,其它部位去反;
舉個例子,我們用一個字節(jié)的反碼來表示+15,-15,+0,-0
+15 : 0000 1111
-15 : 1111 0000
+0?。? 0000 0000
-0 : 1111 1111
反碼運(yùn)算也不方便,通常用來作為求補(bǔ)碼的中間過渡
3>.補(bǔ)碼
在計算機(jī)中,數(shù)值一律用補(bǔ)碼來存儲。補(bǔ)碼特點(diǎn)如下:
對于正數(shù),原碼,反碼,補(bǔ)碼相同;
對于負(fù)數(shù),其補(bǔ)碼為它的反碼加1;
補(bǔ)碼符號位不動,其他為求反,最后整個數(shù)加1,得到原碼;
舉個例子,我們用一個字節(jié)的補(bǔ)碼來表示+15,-15,+0,-0
+15 : 0000 1111
-15 : 1111 0001
+0 : 0000 0000
點(diǎn)擊加載更多評論>>