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