官术网_书友最值得收藏!

1.3 計算機(jī)中數(shù)的表示形式

在現(xiàn)代微型機(jī)中,其內(nèi)部運(yùn)算器通常由一個補(bǔ)碼加法器、n位寄存器/計數(shù)器組和移位控制電路等組成,但它恰能進(jìn)行各種算術(shù)運(yùn)算和邏輯操作。這就是說,補(bǔ)碼加法器既能做加法又能將減法運(yùn)算變?yōu)榧臃▉碜?,從而大大簡化了運(yùn)算器內(nèi)部的電路設(shè)計。這應(yīng)歸功于人們長期以來對計算機(jī)中碼制的研究。

機(jī)器數(shù)是指數(shù)的符號和值均采用二進(jìn)制的表示形式。因此,機(jī)器數(shù)在定點和浮點機(jī)中的表示形式各不相同。為了方便起見,這里的機(jī)器數(shù)均指在定點整數(shù)機(jī)中的表示形式。即最高位是符號位(0表示正數(shù),1表示負(fù)數(shù)),其余位為數(shù)值位,小數(shù)點約定在數(shù)值位之后。在計算機(jī)中,機(jī)器數(shù)有原碼、反碼、補(bǔ)碼、變形原碼、變形反碼、變形補(bǔ)碼和移碼等多種形式。

1.3.1 機(jī)器數(shù)的原碼、反碼和補(bǔ)碼

原碼、反碼和補(bǔ)碼是機(jī)器數(shù)的三種基本形式,它和機(jī)器數(shù)的真值不同。機(jī)器數(shù)的真值定義為采用+和-表示的二進(jìn)制數(shù)符號,并非是真正的機(jī)器數(shù)。例如,+76的機(jī)器數(shù)真值為+1001100B,原碼形式為01001100B(最高位的0表示正數(shù));-76的真值為-1001100B,原碼為11001100B(最高位的1表示負(fù)數(shù))。

1.原碼

原碼表示法是機(jī)器數(shù)的一種簡單的表示法。這種表示法數(shù)的最高位為符號位(用0或1來表示),其余位為數(shù)值位,符號位的0表示該數(shù)為正數(shù),符號位為1表示它是負(fù)數(shù)。通常,一個數(shù)的原碼可以先把該數(shù)用方括號括起來,并在方括號右下角加個“原”字來標(biāo)記。設(shè)有一數(shù)為x,則原碼表示可記作[x]。

【例1-6】 設(shè)X1=+1100B,X2=-1100B,請分別寫出它們在8位微機(jī)中的原碼。

解:其原碼記為

[X1]=[00001100]

[X2]=[10001100]

原碼表示數(shù)的范圍與二進(jìn)制位數(shù)有關(guān)。當(dāng)用8位二進(jìn)制來表示小數(shù)原碼時,其表示范圍為

最大值為0.1111111,其真值約為(0.99)D

最小值為1.1111111,其真值約為(-0.99)D

當(dāng)用8位二進(jìn)制來表示整數(shù)原碼時,其表示范圍為

最大值為01111111,其真值為(127)D

最小值為11111111,其真值為(-127)D

在原碼表示法中,對0有兩種表示形式:

[+0]=00000000

[-0]=10000000

2.反碼

在微型計算機(jī)中,二進(jìn)制數(shù)的反碼可由原碼得到,有正數(shù)的反碼和負(fù)數(shù)的反碼之分:正數(shù)的反碼和原碼相同;負(fù)數(shù)反碼的符號位和負(fù)數(shù)原碼的符號位相同,數(shù)值位是它的數(shù)值位的按位取反。反碼的標(biāo)記方法和原碼類似,只要在被括數(shù)方括號的右下角添加一個“反”字即可。設(shè)有一數(shù)為x,則反碼表示可記作[x]。

【例1-7】 設(shè)X1=+1010110,X2=-1001010,請分別寫出它們在8位微機(jī)的原碼和反碼。

解:由于正數(shù)的反碼就是其原碼;負(fù)數(shù)的反碼是符號位不變,數(shù)值位是它的數(shù)值位的按位取反,所以有

[X1]=01010110

[X1]=[X1]=01010110

[X2]=11001010

[X2]=10110101

反碼通常作為求補(bǔ)過程的中間形式,即在一個負(fù)數(shù)的反碼的末位上加1,就得到了該負(fù)數(shù)的補(bǔ)碼。

3.補(bǔ)碼

補(bǔ)碼的概念是在計算機(jī)中經(jīng)常會遇到的,二進(jìn)制數(shù)的補(bǔ)碼可由反碼得到,如果是正數(shù),則該機(jī)器數(shù)的補(bǔ)碼與原碼一樣;如果是負(fù)數(shù),則該機(jī)器數(shù)的補(bǔ)碼是對它的原碼(除符號位外)各位取反,并在末位加1而得到的。補(bǔ)碼的標(biāo)記方法和原碼、反碼類似,只要在被括數(shù)方括號的右下角添加一個“補(bǔ)”字即可。設(shè)有一數(shù)X,則X的補(bǔ)碼表示記作[X]補(bǔ)。

【例1-8】 設(shè)X1=+1010B,X2=-01010B,試分別寫出它們在8位微機(jī)中的原碼、反碼和補(bǔ)碼形式。

解:由原碼、反碼和補(bǔ)碼的定義得

[X1]=00001010B[X2]=10001010B

[X1]=00001010B[X2]=11110101B

[X1]補(bǔ)=00001010B[X2]補(bǔ)=11110110B

補(bǔ)碼的優(yōu)點是可以將減法運(yùn)算轉(zhuǎn)換為加法運(yùn)算,其符號位可以連同數(shù)值位一起運(yùn)算。這樣非常有利于計算機(jī)的實現(xiàn)。

【例1-9】 45H,-55H,用補(bǔ)碼運(yùn)算的方法求兩數(shù)之和。

解:[45H]補(bǔ)-[-55H]補(bǔ)=[-10H]補(bǔ)

1.3.2 計算機(jī)中二進(jìn)制數(shù)的單位表示

在計算機(jī)中使用的二進(jìn)制數(shù)共有3個單位,從小到大依次為位、字節(jié)和字。

1.位(bit)

這里所說的位是指二進(jìn)制數(shù)的位。位是數(shù)的最小單位,bit是位的英文名稱,讀作“比特”。

在計算機(jī)中位僅有0和1兩個數(shù)值,表示兩種狀態(tài)。

2.字節(jié)(Byte)

8位二進(jìn)制數(shù)稱為一個字節(jié),其英文名稱是Byte,在使用時常用大寫字母B表示。字節(jié)是最基本的數(shù)據(jù)單位,計算機(jī)中的數(shù)據(jù)、代碼、指令、地址多以字節(jié)為單位。

3.字(Word)

字是一臺計算機(jī)上所能并行處理的二進(jìn)制數(shù),字的位數(shù)(或長度)稱之為字長。字長必須是字節(jié)的整數(shù)倍。例如,MCS-51單片機(jī)字長為8位,MCS-96單片機(jī)字長為16位,還有32位、64位字長的計算機(jī)。

1.3.3 計算機(jī)使用二進(jìn)制數(shù)的原因

為什么在計算機(jī)中要使用二進(jìn)制數(shù)呢?其原因主要有以下幾點:

1.易于實現(xiàn)

在計算機(jī)中,數(shù)是用不同的物理狀態(tài)來表示的。因為二進(jìn)制數(shù)只有兩個數(shù)字0和1,用兩種物理狀態(tài)就可以表示出來。而兩種相反的物理狀態(tài)在技術(shù)上極易實現(xiàn)。例如,開關(guān)的接通與斷開,晶體管的導(dǎo)通與截止,電平的高低,脈沖的有無等。

對于這樣兩種截然相反的物理狀態(tài),不但易于實現(xiàn),而且狀態(tài)穩(wěn)定可靠。而兩種以上的物理狀態(tài),不但難以實現(xiàn),而且穩(wěn)定性也差。

2.運(yùn)算簡單

因為二進(jìn)制數(shù)只有兩個數(shù)字,所以對二進(jìn)制數(shù)的運(yùn)算比人們熟悉的十進(jìn)制數(shù)的運(yùn)算要簡單得多,而運(yùn)算簡單將有利于簡化計算機(jī)的電路結(jié)構(gòu)。

3.具有邏輯屬性

由于二進(jìn)制數(shù)的0和1正好與邏輯值的“假(F)”和“真(T)”相對應(yīng),因此可以使用二進(jìn)制數(shù)實現(xiàn)邏輯運(yùn)算,從而使邏輯代數(shù)運(yùn)算成為可能。

4.可靠性高

由于二進(jìn)制數(shù)用兩種截然相反的物理狀態(tài)表示,十分穩(wěn)定。因此二進(jìn)制數(shù)的處理、存儲和傳送都最為可靠。

主站蜘蛛池模板: 辉县市| 囊谦县| 延安市| 海伦市| 铅山县| 元阳县| 甘谷县| 理塘县| 临邑县| 土默特左旗| 石泉县| 安乡县| 全椒县| 东光县| 前郭尔| 新田县| 林州市| 应用必备| 湘西| 孝感市| 佛山市| 兴化市| 甘泉县| 南宁市| 武鸣县| 台南县| 紫阳县| 垣曲县| 游戏| 成安县| 同江市| 新河县| 淮阳县| 讷河市| 商河县| 广平县| 鸡西市| 遵义县| 军事| 屯留县| 商河县|