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