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

1.2 計算機中數的表示方法

在討論計算機如何對有符號數或無符號數進行運算和處理之前,先弄清計算機中數的表示方法是十分必要的。在計算機中,小數和整數都是以二進制形式表示的,但對小數點通常有定點和浮點兩種表示方法。小數點采用定點表示法的稱為定點機,采用浮點表示法的叫做浮點機。

1.2.1 定點機中數的表示方法

在定點計算機中,二進制數的小數點位置是固定不變的,小數點位置可以固定在數值位之前,也可以固定在數值位之后。前者稱為定點小數計算機,后者叫做定點整數計算機。

在理論和習慣上,小數點固定在中間位置比較合適,但因為它所能表示的數既有整數又有小數部分,會給數在數制間替換帶來麻煩,故這種方法通常并不為計算機設計師們所采用。

1.定點整數表示法

在采用定點整數表示法的計算機中,小數點位置被固定在數值位之后。因此,這種計算機在實際運算前應先把參加運算的數(二進制形式)按適當比例替換成純整數,并在運算后把結果操作數按同一比例還原后輸出。設N為某一定點二進制整數,其表示形式為

978-7-111-44921-8-Chapter01-4.jpg

其中,S f為數符,S f=0表示N為正數,S f=1表示N為負數。

數的表示形式在大多數計算機中都是采用定點整數法,MCS-51單片機也是一種定點整數計算機。因此,MCS-51單片機只能對二進制整數進行直接運算和處理,它在遇到二進制小數時,必須把該小數按比例擴大成二進制整數后進行處理,并在處理完后再按同樣比例縮小后進行輸出。

定點整數表示法的優點是,運算規則簡單,它所能表示的數的范圍沒有相同位數的浮點法大。例如,一個16位的二進制定點整數N,若它的S f占1位、尾數占15位,則它所能表示的原碼數的范圍為

N≤11…11=100…00-1=215-1,近似形式為-215≤N215

2.定點小數表示法

在采用定點小數表示法的計算機中,小數點的位置被固定在數值位之前。因此,這種計算機在實際運算前應首先把參加運算的二進制整數按適當比例替換成純小數,并在運算結束后把結果操作數(純小數)按同樣比例逆替換后輸出。設N為定點小數,其表示形式為

978-7-111-44921-8-Chapter01-5.jpg

其中,Sf為數符,Sf=0表示N為正數,Sf=1表示N為負數。

定點小數表示法的優點是,運算規則簡單,但它所能表示的數的范圍較小。例如,一個16位的二進制小數N,若它的Sf占1位、尾數占15位,則它所能表示的原碼數范圍為

N≤0.11…11=1-0.00…01=1-2-15即-(1-2-15)≤N≤(1-2-15

1.2.2 浮點機中數的表示方法

在采用浮點表示的二進制數中,小數點位置是浮動的、不固定的。

通常,任意一個二進制數都可以寫為

N=2P×S

式中,S為二進制數N的尾數,代表了N的實際有效值;P為N的階碼,可以決定小數點的具體位置。例如:N=101.11B=23×0.10111B。

因此,任何一個浮點數N都由階碼和尾數兩部分組成。階碼部分包括階符和階碼,尾數部分由數符和尾數組成,其形式為

978-7-111-44921-8-Chapter01-6.jpg

其中,Pf為階符,Pf=0表示階碼為正,Pf=1表示階碼為負;Sf為數符,Sf=0表示該數為正數,Sf=1表示該數為負數;小數點的約定位置在尾數之前,實際位置是浮動的,由階碼決定。浮點法的優點是,數的表示范圍大。浮點表示法的缺點是,運算規則復雜,通常要對階碼和尾數分別運算。

1.2.3 二進制數的運算

二進制數的運算分為二進制整數運算和二進制小數運算兩種類型,但運算法則完全相同。由于大部分計算機中數的表示方法均采用定點整數表示法,故這里僅介紹二進制整數運算,二進制小數運算與它相同。

二進制數的運算比較簡單,包括算術運算和邏輯運算。算術運算包括加、減、乘、除運算;邏輯運算包括邏輯乘、邏輯加、邏輯非和邏輯異或等。

1.二進制數的算數運算

(1)加法運算

運算規則為

0+0=0;0+1=1+0=1;1+1=10(向高位進位)

(2)減法運算

運算規則

0-0=0;1-0=1;1-1=0;0-1=1(向高位借1)

(3)乘法運算

運算規則

0×0=0;0×1=1×0=0;1×1=1

(4)除法運算

除法是乘法的逆運算。與十進制類似,二進制除法也是從被除數最高位開始,查找出夠減除數的位數,并在其最高位處上商1和完成它對除數的減法運算,然后把被除數的下一位移到余數位置上。若余數不夠減除數,則上商0,并把被除數的再下一位移到余數位置上;若余數夠減除數,則上商1并進行余數減除數。這樣反復進行,直到全部被除數的各位都下移到余數位置上為止。

2.邏輯運算

計算機處理數據時常常要用到邏輯運算。邏輯運算由專門的邏輯電路完成。下面介紹幾種常用的邏輯運算。

(1)邏輯乘運算

邏輯乘又稱邏輯與,常用∧算符表示。邏輯乘運算法則為

0∧0=0;1∧0=0∧1=0;1∧1=1

(2)邏輯加運算

邏輯加又稱邏輯或,常用算符∨表示。邏輯加的運算規則為

0∨0=0;1∨0=0∨1=1;1∨1=1

(3)邏輯非運算

邏輯非運算又稱邏輯取反,常采用“_”運算符表示。邏輯非的運算規則為

978-7-111-44921-8-Chapter01-7.jpg

(4)邏輯異或

邏輯異或又稱為半加,是不考慮進位的加法,常采用算符表示。邏輯異或的運算規則為

0⊕0=0;1⊕1=0;1⊕0=0⊕1=1

主站蜘蛛池模板: 高要市| 旌德县| 高淳县| 大城县| 祥云县| 凤台县| 凤庆县| 清镇市| 抚顺县| 龙门县| 新竹市| 长白| 安化县| 西青区| 秭归县| 林芝县| 丰城市| 庆城县| 淮南市| 平阳县| 江门市| 恭城| 延庆县| 沽源县| 旬阳县| 三台县| 潜山县| 睢宁县| 呼图壁县| 赤城县| 芦山县| 浦北县| 望城县| 进贤县| 灵璧县| 文化| 定结县| 阿勒泰市| 象州县| 临江市| 西安市|