計算機為什么用補碼存儲數據?


本文由作者原創

目錄:

  1、無符號數和有符號數的區別

  2、原碼,反碼,補碼

  3、計算機為什么使用補碼存儲數據

 


 

1、無符號數和有符號數的區別

  數據在計算機中都是以二進制串的形式存儲!字節是內存的基本單位,計算機存儲和管理數據以字節為最小單位(還有  字、雙字)。

  首先要分清無符號數和有符號數:

    無符號數:無符號數就是沒有正負號之分,表示的是自然數(自我理解)

    有符號數:有符號數有正負號之分,在計算機中0表示正數,1表示負數

    例:對於一個字節來講

    無符號數能表示的范圍是:0~255

    有符號數能表示的范圍是:-127~128

  注:其實對於相同字節數的無符號數和有符號數,它們能表示的的個數是相同的,只是我們人為的賦予了不同給的含  義,使它能表示的范圍有了改變。

 

 


 

2、原碼,反碼,補碼

  對於無符號數來講它是沒有原碼,反碼,補碼之分的。(原碼,反碼,補碼相同)

  有符號數才有原碼,反碼,補碼編碼方式

  數分為正數和負數兩大類(計算機外部,也就是人為的區分)

  正數的原碼,反碼,補碼相同

  負數的原碼,反碼,補碼的相互轉換規則是:負數的補碼是原碼取反加1(轉換過程不設計符號位)

    例1:負數-12(當然我以字節為單位存儲)

    原碼:10001100

    反碼:11110011

    補碼:11110100(計算機存儲的是補碼,操作時都以補碼操作)

    例2:正數 12

    原碼:00001100

    反碼:00001100

    補碼:00001100

  補充:不管是二進制,十進制,還是十六進制相加的規則是一樣的“滿則進1”。

 

 


 

 

3、計算機為什么使用補碼存儲數據

  在計算機數據都是以補碼的方式存儲的,我認為原因主要以下兩個(自我理解)

    優點:

    1.避免了0的編碼有兩個

    2.符號位和有效值位可以一起處理,減法通過加法就可以實現,即簡化了計算機的結構設計也提高了運算速度。

    補:計算機的加減運算都是通過加法實現的,乘除運算都是通過乘法實現的(當然有的計算機有乘法器,有的計算      機無乘法器,乘法也是由加法器實現的)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM