數據在計算機里面都是以0和1存儲和運算的,這是馮諾依曼體系的基礎。
比如一個數在計算機中若有正負之分,則用一個數的最高位(符號位)用來表示它的正負,其中0表示正數,1表示負數。
原碼就是整數絕對值的二進制形式,為了解決計算機中有負數的運算,提出了反碼、補碼。
1、原碼
原碼就是符號位加上真值的絕對值,第一位表示符號,其余位表示值。對于4位的二進制,其取值范圍就是[1000,0111],即[-8,7]。
+5的原碼:0101
-5的原碼:1101
2、反碼
正數的反碼是其本身。
負數的反碼是在其原碼的基礎上,符號位不變,其余位取反。
+5的反碼:0101
-5的反碼:1010
可見如果一個反碼表示的是負數,是無法直觀地看出來它的數值,通常要將其先轉換成原碼再計算。
3、補碼
正數的補碼還是其本身。
負數的補碼是在其原碼的基礎上,符號位保持不變,其余位取反,最后+1。即反碼加1。
+5的補碼:0101
-5的補碼:1011
綜上,計算機有三種編碼方式來表示同一個數。
對于+5和-5,
[+5] = [0101]原 = [0101]反 = [0101]補
[-5] = [1101]原 = [1010]反 = [1011]補
計算機采用補碼的形式來表示負數。欲知為何如此,請閱讀計算機為何采用補碼的形式來表示負數
-
二進制
+關注
關注
2文章
803瀏覽量
42011 -
計算機
+關注
關注
19文章
7595瀏覽量
89622
發布評論請先 登錄
相關推薦
評論