本文由作者原創
目錄:
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.符號位和有效值位可以一起處理,減法通過加法就可以實現,即簡化了計算機的結構設計也提高了運算速度。
補:計算機的加減運算都是通過加法實現的,乘除運算都是通過乘法實現的(當然有的計算機有乘法器,有的計算 機無乘法器,乘法也是由加法器實現的)