位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言基礎知識—計算機內存數值存儲方式

提問人:ylm發(fā)布時間:2020-09-25

1>.原碼

 

一個數的原碼(原始的二進制碼)有如下特點:

    最高位作為符號位,0表示正,1表示負;

    其它數值部分都是數值本身絕對值的二進制數;

    負數的原碼是在其絕對值的基礎上,最高位變?yōu)?/span>1;

 

舉個例子,我們用一個字節(jié)的原碼來表示+15,-15,+0,-0

    +15  0000 1111

    -15  1000 1111

    +0   0000 0000

    -0   1000 0000

 

    原碼表示方法簡單易懂,帶有符號數本身轉換方便,只要符號位還原即可,但當兩個整數相減或不同符號相加時,必須比較兩個數哪個絕對值大,才能決定誰減誰,才能確定結果是正還是負,所以原碼不便于加減運算。

 

2>.反碼

 

一個數的反碼(原始的二進制碼)有如下特點:

   對于正數,反碼與原碼相同;

    對于負數,符號位不變,其它部位去反;

    

舉個例子,我們用一個字節(jié)的反碼來表示+15-15,+0,-0

  +15 0000 1111

  -15 1111 0000

  +0?。? 0000 0000

   -0  :  1111 1111

 

  反碼運算也不方便,通常用來作為求補碼的中間過渡

 

3>.補碼

 

在計算機中,數值一律用補碼來存儲。補碼特點如下:

  對于正數,原碼,反碼,補碼相同;

  對于負數,其補碼為它的反碼加1

  補碼符號位不動,其他為求反,最后整個數加1,得到原碼;

 

舉個例子,我們用一個字節(jié)的補碼來表示+15,-15+0,-0

  +15 0000 1111

  -15 1111 0001

  +0  0000 0000

繼續(xù)查找其他問題的答案?

相關視頻回答
回復(0)
返回頂部