




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器1第二章第二章 運算方法與運算器運算方法與運算器2.1 2.1 數據信息的表示方法數據信息的表示方法2.1.1數值數據的表示數值數據的表示計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器2真值與機器數真值與機器數 采用正、負符號加上二進制的絕對值,則這種采用正、負符號加上二進制的絕對值,則這種數值稱為真值。數值稱為真值。 將正負號分別用一位數碼將正負號分別用一位數碼0 0和和1 1來代替,一般將來代替,一般將這種符號位放在數的最高位。這種在機器中使這種符號位放在數的最高位。這種在機器中使用的
2、連同數符一起數碼化的數,稱為機器數。用的連同數符一起數碼化的數,稱為機器數。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器3真值與機器數真值與機器數例:設機器字為例:設機器字為8b8b字長,數字長,數n n1 1的真值為(的真值為(+1001110+1001110)2 2,數數n n2 2的真值為(的真值為(-1001110-1001110)2 2,則,則n n1 1 、n n2 2對應的機器數對應的機器數為:為: n n1 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 n n2 2 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1
3、 0 符號符號 數數 值值 部部 分分計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器4數的轉換數的轉換例例2-1 2-1 將十進制數將十進制數26.4126.41轉換成二進制數,八進制數、十六進轉換成二進制數,八進制數、十六進制數。制數。解:解: 轉換成二進制數的過程如下,轉換成二進制數的過程如下,整數除整數除2 2取余取余 (余數)(余數) ( 整數整數 )小數乘)小數乘2 2取整。取整。 26 .4126 .4113 0 0 .8213 0 0 .826 1 1 .646 1 1 .643 0 1 .283 0 1 .281 1 0 .561 1 0 .560
4、 1 1 .120 1 1 .12 26.41 26.411010=1 1 0 1 0.=1 1 0 1 0. 0 1 1 0 10 1 1 0 12 2 計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器5數的機器碼表示數的機器碼表示通常有原碼、補碼、反碼和移碼四種表示法。通常有原碼、補碼、反碼和移碼四種表示法。原碼表示法原碼表示法 其最高位作為符號位,用其最高位作為符號位,用“0”0”表示正號,用表示正號,用“1”1”表示負號表示負號, ,有效值部分用二進制的絕對值表示。例如,有效值部分用二進制的絕對值表示。例如,若若x x1 1=+0.1011 x=+0.101
5、1 x2 2=-0.1011, =-0.1011, 字長為字長為8b8b,則其原碼分別,則其原碼分別為:為:xx1 1 原原=0.1011000 =0.1011000 xx2 2 原原=1.1011000=1.1011000原碼有正零和負零兩種形式:原碼有正零和負零兩種形式:+0+0原原=0.00=0.00 00 00 -0 -0原原=1.00=1.00 0000 計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器6補碼表示法補碼表示法由于補碼在作二進制加、減運算時較方便由于補碼在作二進制加、減運算時較方便, ,所以所以在計算機中廣泛采用補碼表示二進制數。在計算機中廣
6、泛采用補碼表示二進制數。補碼運算中,可以用加法代替減法,節省元件,補碼運算中,可以用加法代替減法,節省元件,降低成本。降低成本。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器7補碼表示法補碼表示法原碼求補碼方法:正數不變(相同)。負數符號位不變,原碼求補碼方法:正數不變(相同)。負數符號位不變,數值位求反加數值位求反加1 1例如,若例如,若x x1 1=+0.1011=+0.1011,x x2 2=-0.1011, =-0.1011, 字長為字長為8b8b,則其補碼,則其補碼分別為分別為xx1 1 原原=0.1011000 x=0.1011000 x1 1 補補=
7、0.1011000 =0.1011000 xx2 2 原原=1.1011000 x=1.1011000 x2 2 補補=1.0101000=1.0101000補碼的零只有一個即補碼的零只有一個即0.00000000.0000000。1.0000001.000000表示負表示負1 1計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器8 反碼表示法反碼表示法對于正數來說,反碼與原碼、補碼的表示形式相對于正數來說,反碼與原碼、補碼的表示形式相同。對于負數來說,符號位與原碼、補碼的符號同。對于負數來說,符號位與原碼、補碼的符號位定義相同。而數值只是將原碼的數值位按位變位定義相
8、同。而數值只是將原碼的數值位按位變反就得到了該數的反碼表示。反就得到了該數的反碼表示。例如,若例如,若x x1 1=+0.1011 x=+0.1011 x2 2=-0.1011, =-0.1011, 字長為字長為8b8b,xx1 1 反反=0.1011000= x=0.1011000= x1 1 原原= = xx1 1 補補xx2 2 反反=1.0100111 =1.0100111 xx2 2 補補=1.0101000 =1.0101000 xx2 2 原原=1.1011000=1.1011000反碼的零有兩個反碼的零有兩個0.00000.0000和和1.111111.11111計算機組成原理
9、計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器9 移碼移碼 移碼也叫增碼,它常以整數形式用在計算機浮點數的移碼也叫增碼,它常以整數形式用在計算機浮點數的階碼(表示指數)中。若純整數階碼(表示指數)中。若純整數x x為為n n位(包括符號位(包括符號位),則其移碼定義為:位),則其移碼定義為: xx移移=2=2n-1n-1+x+x補補 -2-2n-1n-1x2x2n-1n-1-1-1補碼將符號位求反可得移碼。補碼將符號位求反可得移碼。設字長為設字長為8b8b,若,若x=+1000 x=+1000(2)(2), xx補補=00001000 x=00001000 x移移=100010
10、00=10001000 若若x=-1000 x=-1000(2)(2), xx補補=11111000 x=11111000 x移移= 01111000= 01111000計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器10數的定點表示數的定點表示 計算機中小數的小數點并不是用某個數字來表計算機中小數的小數點并不是用某個數字來表示的,而是用隱含的小數點的位置來表示。根示的,而是用隱含的小數點的位置來表示。根據小數點的位置是否固定,又可分為據小數點的位置是否固定,又可分為定點表示定點表示和和浮點表示浮點表示。其中定點表示形式又分為。其中定點表示形式又分為定點小定點小數數
11、表示形式和表示形式和定點整數定點整數表示形式。表示形式。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器11數的定點表示數的定點表示 定點小數定點小數 將小數點固定在符號位將小數點固定在符號位d d0 0之后,數值最高位之后,數值最高位d d-1-1之前,之前,這就是定點小數形式。其格式如下所示:這就是定點小數形式。其格式如下所示: d d0 0 d d-1-1 d d-2-2 d d-(n-1-(n-1) 定點整數定點整數 將小數點固定在數的最低位之后,這就是定點整數形將小數點固定在數的最低位之后,這就是定點整數形式。其格式如下所示:式。其格式如下所示: d d0
12、 0 d d-1-1 d d-2-2 . d. d-(n-1-(n-1) 計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器12定點小數的表示范圍:定點小數的表示范圍:設字長為設字長為8b8b,用原碼表示時,其表示范圍如下:,用原碼表示時,其表示范圍如下: 最小負數最小負數 最大負數最大負數 最小正數最小正數 最大正數最大正數 1.1111111 1.0000001 0.0000001 0.11111111.1111111 1.0000001 0.0000001 0.1111111- -(1-21-2) -2-27 7 2 27 7 1-21-27 7 設字長為設字長
13、為8b8b,用補碼表示時,其表示范圍如下:,用補碼表示時,其表示范圍如下: 最小負數最小負數 最大負數最大負數 最小正數最小正數 最大正數最大正數 1.0000000 1.1111111 0.0000001 0.11111111.0000000 1.1111111 0.0000001 0.1111111 -1 -2 -1 -27 7 2 27 7 1-21-27 7計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器13 定點整數的表示范圍:定點整數的表示范圍: 設字長為設字長為8b8b,用原碼表示時,其表示范圍如下:,用原碼表示時,其表示范圍如下: 最小負數最小負數
14、最大負數最大負數 最小正數最小正數 最大正數最大正數 11111111 10000001 00000001 0111111111111111 10000001 00000001 01111111- -(2 27 7-1-1)=-127 -1=-127 -1 +1+1 2 27 7-1=127-1=127 設字長為設字長為8b8b,用補碼表示時,其表示范圍如下:,用補碼表示時,其表示范圍如下: 最小負數最小負數 最大負數最大負數 最小正數最小正數 最大正數最大正數 10000000 11111111 00000001 0111111110000000 11111111 00000001 0111
15、1111 -2 -27 7=-128 -1=-128 -1 +1+1 2 27 7-1=127-1=127計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器14 (1 1)綜上所述,用原碼表示時,由于真值零占)綜上所述,用原碼表示時,由于真值零占用了兩個編碼,因此用了兩個編碼,因此n n位二進制只能表示位二進制只能表示2 2n n-1-1個個原碼。原碼表示的優點是:數的真值與它的原碼原碼。原碼表示的優點是:數的真值與它的原碼之間的對應關系簡單、直觀、轉換容易,但用原之間的對應關系簡單、直觀、轉換容易,但用原碼實現加減運算很不方便。碼實現加減運算很不方便。 (2 2)在
16、補碼系統中,由于零有唯一的編碼,因)在補碼系統中,由于零有唯一的編碼,因此,此,n n位二進制能表示位二進制能表示2 2n n個補碼,采用補碼表示比個補碼,采用補碼表示比用原碼表示可多表示一個數。補碼在機器中常用用原碼表示可多表示一個數。補碼在機器中常用于作加、減運算。于作加、減運算。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器15數的浮點表示法數的浮點表示法 浮點數的表示格式浮點數的表示格式 浮點表示法把字長分成階碼(表示指數)和尾數(表示數浮點表示法把字長分成階碼(表示指數)和尾數(表示數值)兩部分。其格式如下(第一種浮點格式):值)兩部分。其格式如下(第一
17、種浮點格式): j ej em-1m-1e e1 1 s d s d-1-1d d-(n-1)-(n-1) 階符階符 階碼值階碼值 數符數符 尾數值尾數值 補碼表示補碼表示 補碼表示補碼表示 階碼部分共分為階碼部分共分為m m位,其中位,其中j j為階符(即指數部分的符號為階符(即指數部分的符號位),位),e ei i為階碼值(表示冪次);基數為階碼值(表示冪次);基數r r是隱含約定的,通是隱含約定的,通常取常取2 2;尾數部分共分為;尾數部分共分為n n位,其中位,其中s s是尾數部分的符號位,是尾數部分的符號位,d d-1-1d d- -(n-1n-1)為尾數值部分。假設階碼為為尾數值部
18、分。假設階碼為e e,尾數為,尾數為d d,基數,基數為為2 2,則這種格式存儲的數,則這種格式存儲的數x x可表示為可表示為x=dx=d2 2e e。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器16 實際應用中,階碼通常采用補碼或移碼定點整數形式,實際應用中,階碼通常采用補碼或移碼定點整數形式,尾數通常用補碼定點小數形式。浮點表示法還有另一尾數通常用補碼定點小數形式。浮點表示法還有另一種(即第二種浮點格式)表示格式,將數符放在最高種(即第二種浮點格式)表示格式,將數符放在最高位,即位,即 s j es j em-1m-1e e1 1 d d-1-1d d-(n
19、-1)-(n-1) 數符數符 階符階符 階碼值階碼值 尾數值尾數值 移碼表示移碼表示 補碼表示補碼表示計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器17 浮點數的規格化浮點數的規格化 為了使浮點表示法有盡可能高的精度,措施之一是增加為了使浮點表示法有盡可能高的精度,措施之一是增加位數或者是在字長一定的情況下,將階碼和尾數所占位數或者是在字長一定的情況下,將階碼和尾數所占的位數協調好;措施之二是采用浮點數規格化表示。的位數協調好;措施之二是采用浮點數規格化表示。那么什么是浮點數規格化呢?這就是通過調整階碼,那么什么是浮點數規格化呢?這就是通過調整階碼,使其尾數使其尾
20、數d d滿足下面形式的數:滿足下面形式的數: 原碼規格化后原碼規格化后 正數為正數為 0.10.1的形式。的形式。 負數為負數為 1.11.1的形式。的形式。 補碼規格化后補碼規格化后 正數為正數為 0.10.1的形式。的形式。 負數為負數為 1.01.0的形式。的形式。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器18 浮點數的表示舉例浮點數的表示舉例 某機用某機用32b32b表示一個數,階碼部分占表示一個數,階碼部分占8b8b(含一位符號位),(含一位符號位),尾數部分占尾數部分占24b24b(含一位符號位)。設(含一位符號位)。設x x1 1=-256.5
21、=-256.5 ,x x2 2=127/256=127/256,試寫出,試寫出x x1 1和和x x2 2的兩種浮點數表示格式。的兩種浮點數表示格式。 解 :解 : x x1 1= - 2 5 6 . 5 = -= - 2 5 6 . 5 = - ( 1 0 0 0 0 0 0 0 0 . 11 0 0 0 0 0 0 0 0 . 1 )2 2= -= -2 29 90.10000000010.1000000001 階碼的補碼為(階碼的補碼為(+9+9)補補=00001001 =00001001 階碼的移碼為(階碼的移碼為(+9+9)移移=10001001=10001001 尾數尾數=1.01
22、111111110000000000000 =1.01111111110000000000000 (規格化補碼)(規格化補碼) 第一種浮點表示的格式為第一種浮點表示的格式為 0000100100001001,1.011111111100000000000001.01111111110000000000000 第二種浮點表示的格式為第二種浮點表示的格式為 1 1,1000100110001001,0111111111000000000000001111111110000000000000計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器19 浮點數的表示舉例浮點數的表示
23、舉例 某機用某機用32b32b表示一個數,階碼部分占表示一個數,階碼部分占8b8b(含一位符號(含一位符號位),尾數部分占位),尾數部分占24b24b(含一位符號位)。設(含一位符號位)。設x x1 1=-=-256.5 256.5 ,x x2 2=127/256=127/256,試寫出,試寫出x x1 1和和x x2 2的兩種浮點數表示的兩種浮點數表示格式。格式。 解解 x x2 2=127/256= =127/256= (11111111111111)2 22 2-8-8=2=2-1-10.11111110.1111111 階碼的補碼為(階碼的補碼為(-1-1)補補=11111111 =1
24、1111111 階碼的移碼為(階碼的移碼為(-1-1)移移=01111111=01111111 尾數尾數=0.11111110000000000000000=0.11111110000000000000000(規格化補碼)(規格化補碼) 第一種浮點表示的格式為第一種浮點表示的格式為 1111111111111111,0.111111100000000000000000.11111110000000000000000 第二種浮點表示的格式為第二種浮點表示的格式為 0 0,0111111101111111,1111111000000000000000011111110000000000000000
25、計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器20 浮點數的表示范圍浮點數的表示范圍 設階碼和尾數各為設階碼和尾數各為4b4b(各包含一個符號位),則其浮點數的表示表(各包含一個符號位),則其浮點數的表示表示范圍分別為:示范圍分別為: 階碼范圍階碼范圍 最小負數最小負數 最大負數最大負數 最小正數最小正數 最大正數最大正數 1000 1111 0001 01111000 1111 0001 0111 -2 -27 7=-8 -1=-8 -1 +1+1 2 23 3-1=7-1=7 規格化尾數表示范圍規格化尾數表示范圍 最小負數最小負數 最大負數最大負數 最小正數最
26、小正數 最大正數最大正數 1.000 1.011 0.100 0.1111.000 1.011 0.100 0.111 -1 - -1 -(2 23 3+2+21 1 ) 2 21 1 1-21-23 3計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器21 規格化浮點數表示范圍規格化浮點數表示范圍 最小負數最小負數 最大負數最大負數 最小正數最小正數 最大正數最大正數 2 2011101111.000 21.000 2100010001.011 21.011 2100010000.100 20.100 2011101110.1110.111 2 2111111111
27、.000 21.000 2000000001.011 21.011 2000000000.100 20.100 2111111110.1110.111 -2 -27 71 -21 -2-8-8(2 23 3+2+21 1 ) 2 2-8-82 21 1 2 27 7(1-21-23 3) 注意:這里規格化尾數的最大負數的補碼是注意:這里規格化尾數的最大負數的補碼是1.011.011 1的形式,的形式,而不是而不是1.101.100 0的形式,是因為的形式,是因為 1.101.100 0不是規格化數,所以規不是規格化數,所以規格化尾數的最大負數應是格化尾數的最大負數應是 : - -(0.100.
28、100 + 0.00 + 0.00101)= - 0.10= - 0.1001 01 , 而而- 0.10- 0.1011補補=1.01=1.011 1 ,即,即 - -(2 2(n-1)(n-1)+2+21 1 )計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器22(5) (5) 溢出問題溢出問題 定點形式判斷溢出的辦法是對數值本身進行判斷,而浮定點形式判斷溢出的辦法是對數值本身進行判斷,而浮點數是對規格化后的階碼進行判斷。當一個浮點數階點數是對規格化后的階碼進行判斷。當一個浮點數階碼大于機器的最大階碼,稱為上溢;而小于最小階碼碼大于機器的最大階碼,稱為上溢;而小
29、于最小階碼時,稱為下溢。機器產生上溢時,不能再繼續運算,時,稱為下溢。機器產生上溢時,不能再繼續運算,一般要進行中斷處理。出現下溢時,一般規定把浮點一般要進行中斷處理。出現下溢時,一般規定把浮點數各位強迫為零數各位強迫為零(當做零處理當做零處理),機器仍可繼續進行運算。,機器仍可繼續進行運算。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器23字符的表示字符的表示 ascii碼碼(american standard code for information interchange,美國國家信息交換標準字符碼,美國國家信息交換標準字符碼) 。ascii共有共有128個
30、字符,其中個字符,其中95個編碼個編碼(包括大小寫各包括大小寫各26個英個英文字母,(文字母,(09)10個數字符,標點符號等個數字符,標點符號等)對應著計對應著計算機終端能敲入并可以顯示這算機終端能敲入并可以顯示這95個字符,打印機也可個字符,打印機也可打印出這打印出這95個字符。另外的個字符。另外的33個字符是被用做控制碼,個字符是被用做控制碼,控制計算機某些外圍設備的工作特性和某些計算機軟控制計算機某些外圍設備的工作特性和某些計算機軟件運行情況。件運行情況。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器24ascii碼碼 在計算機中,用在計算機中,用1b(一
31、個字節)表示一個(一個字節)表示一個ascii碼,其最高一碼,其最高一位位(b7位位)填填0,余下的,余下的7b可以給出可以給出128個編碼,表示個編碼,表示128個不同的個不同的字符和控制碼。但當進行奇偶校驗時,也可以用最高位字符和控制碼。但當進行奇偶校驗時,也可以用最高位(b7)作作為校驗位。為校驗位。 如如a的的ascii碼為:碼為: 1000001=01000001=(41)16=65 如如a的的ascii碼為:碼為: 1100001=01100001=(61)16=97計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器25漢字的表示漢字的表示 (1)(1)漢
32、字的輸入漢字的輸入 輸入碼是為使輸入設備能將漢字輸入到計算機而專門編制的一輸入碼是為使輸入設備能將漢字輸入到計算機而專門編制的一種代碼。目前已出現了數百種漢字輸入方案,常見的有國標碼、種代碼。目前已出現了數百種漢字輸入方案,常見的有國標碼、區位碼、拼音碼和五筆字型等。區位碼、拼音碼和五筆字型等。 (2)(2)漢字在機內的表示漢字在機內的表示 機內碼是指機器內部處理和存儲漢字的一種代碼。目前國內還機內碼是指機器內部處理和存儲漢字的一種代碼。目前國內還沒有制定統一的漢字機內碼,常用的一種漢字機內碼是用沒有制定統一的漢字機內碼,常用的一種漢字機內碼是用2b2b表表示一個漢字的。它是在國標碼的基礎上,
33、在每個字節的最高位示一個漢字的。它是在國標碼的基礎上,在每個字節的最高位置置“1”1”作為漢字標記而組成的。作為漢字標記而組成的。 機內碼與國標之間的轉換關機內碼與國標之間的轉換關系為:機內碼系為:機內碼( (十六進制十六進制) )國標碼國標碼( (十六進制十六進制) )8080h8080h。例如,。例如, “京京”字的國標碼為字的國標碼為3e29h3e29h,其機內碼為,其機內碼為bea9hbea9h。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器26(3)漢字的輸出與漢字字庫漢字的輸出與漢字字庫 顯示器是采用圖形方式顯示器是采用圖形方式( (即漢字是由點陣組成
34、即漢字是由點陣組成) )來顯示來顯示漢字的。但由于漢字字形復雜,用顯示西文字符的漢字的。但由于漢字字形復雜,用顯示西文字符的8 88 8點陣已無法顯示一些常用的漢字,每個漢字至少點陣已無法顯示一些常用的漢字,每個漢字至少需要需要16161616的點陣才能顯示。圖的點陣才能顯示。圖2.12.1所示的是用所示的是用16161616點陣顯示一個漢字的例子。點陣顯示一個漢字的例子。 對于這種對于這種1616點陣碼,每個漢字要用點陣碼,每個漢字要用32b的容量,它的容量,它是最簡單的漢字點陣。若要獲得更美觀的字形,需采是最簡單的漢字點陣。若要獲得更美觀的字形,需采用用2424,3232,4848等點陣來
35、表示。一個實用等點陣來表示。一個實用的漢字系統大約占幾十萬到上百萬個存儲單元。的漢字系統大約占幾十萬到上百萬個存儲單元。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器27一般常用的漢字輸出有打印輸出和顯示輸出兩種形式。一般常用的漢字輸出有打印輸出和顯示輸出兩種形式。輸出漢字的過程為:輸入碼轉換為機內碼,然后用機輸出漢字的過程為:輸入碼轉換為機內碼,然后用機碼檢索字庫,找到其字形點陣碼,再輸出漢字,碼檢索字庫,找到其字形點陣碼,再輸出漢字, 鍵盤鍵盤 輸入碼處理輸入碼處理 漢字機內碼漢字機內碼 字形字形 漢字字形點陣漢字字形點陣 顯示顯示 轉換程序轉換程序 2b 檢
36、索程序檢索程序 32b 驅動程序驅動程序 碼表碼表 漢字漢字 crt 字模庫字模庫 顯示器顯示器計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器282.2 定點加減法運算定點加減法運算2.2.1 定點補碼加、減法與溢出概念定點補碼加、減法與溢出概念 在計算機中,常將數值轉換成補碼后再進行加減運算。在計算機中,常將數值轉換成補碼后再進行加減運算。其優點是,可將減法運算轉化為加法運算,這樣可以其優點是,可將減法運算轉化為加法運算,這樣可以簡化機器內部硬件電路的結構。補碼運算的特點是,簡化機器內部硬件電路的結構。補碼運算的特點是,符號位和數值位一起參加運算。符號位和數值位
37、一起參加運算。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器29補碼加減運算規則補碼加減運算規則(1)補碼的加法運算補碼的加法運算其公式為:其公式為:xx補補yy補補xxyy補補(2)補碼的減法運算補碼的減法運算其公式為其公式為xx 補補 - y- y 補補= x - y = x - y 補補= x += x +(- y- y) 補補= x= x 補補 + -y+ -y 補補計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器30只要能通過只要能通過yy 補補求得求得-y-y 補補,就可以將補碼減法,就可以將補碼減法運算化為補碼加法運算。已
38、知運算化為補碼加法運算。已知yy 補補,求,求-y-y 補補的的法則是:對法則是:對yy 補補各位(包括符號位)取反,然后各位(包括符號位)取反,然后在末位加上在末位加上1 1。例如,已知例如,已知yy 補補=1=110101010 則則-y-y 補補=0=001100110又如,已知又如,已知yy 補補=0=011101110 則則-y-y 補補=1=100100010計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器31 加減法運算規則加減法運算規則參加運算的數都用補碼表示。參加運算的數都用補碼表示。數據的符號與數據一樣參加運算。數據的符號與數據一樣參加運算。求差
39、時將減數求補,用求和代替求差。求差時將減數求補,用求和代替求差。運算結果為補碼。如果符號位為運算結果為補碼。如果符號位為0 0,表明運算,表明運算結果為正;如果符號位為結果為正;如果符號位為1 1,則表明運算結果為,則表明運算結果為負。負。符號位的進位為模值,應該丟掉。符號位的進位為模值,應該丟掉。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器322.2.補碼加減運算舉例補碼加減運算舉例例例1 1:已知機器字長:已知機器字長 n=8bn=8b,x=44x=44, y=53y=53, 求求x+y=x+y=? 解:解: x=00101100 x=00101100 ,
40、y=00110101y=00110101 x x 補補=00101100 =00101100 ,yy 補補=00110101=00110101 x x 補補= 00101100= 00101100 + y + y 補補= 00110101= 00110101 x+y x+y 補補= 01100001 = 01100001 ( x+yx+y)2 2= +1100001 x+y = 97 = +1100001 x+y = 97 計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器332.2.補碼加減運算舉例補碼加減運算舉例例例2 2 已知機器字長已知機器字長 n=8bn=8
41、b,x=-44x=-44, y=-53y=-53, 求求x-y=x-y=?解:解: x=-00101100 x=-00101100,y=-00110101y=-00110101 x x 補補=11010100=11010100,yy 補補=11001011=11001011 -y -y 補補=00110101=00110101 x x 補補= 11010100= 11010100 + -y + -y 補補= 00110101= 00110101 x-y x-y 補補= = 1 1 00001001 00001001 已超出模值,丟掉已超出模值,丟掉 ( x-yx-y)2 2= +0001001
42、 x-y = +9= +0001001 x-y = +9計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器343.3.溢出判斷法溢出判斷法例如:例如: 已知機器字長已知機器字長 n=8bn=8b,x=120 x=120, y=10y=10, 求求x+y=x+y=? 解:解: x=+1111000 y=+00001010 x=+1111000 y=+00001010 x x 補補=01111000 y=01111000 y 補補=00001010=00001010 x x 補補= = 0 011110001111000 + y + y 補補= = 0 000010100
43、001010 x+y x+y 補補= = 1 10000010 0000010 運算結果符號與被加數符號相反,故產生了溢出。運算結果符號與被加數符號相反,故產生了溢出。 判斷溢出的方法是:兩個符號相同的數相加,其運算判斷溢出的方法是:兩個符號相同的數相加,其運算結果的符號應與被加數符號、加數符號相同,如相反結果的符號應與被加數符號、加數符號相同,如相反就產生了溢出現象;兩個符號相異的數相減,其運算就產生了溢出現象;兩個符號相異的數相減,其運算結果的符號應與被減數的符號相同,如相反則有溢出結果的符號應與被減數的符號相同,如相反則有溢出發生。發生。計算機組成原理計算機組成原理 第二章第二章 運算方
44、法與運算器運算方法與運算器35(1)(1)雙符號法雙符號法( (變形補碼法變形補碼法) ) 用兩個相同的符號位表示一個數的符號。左邊第一位為第一用兩個相同的符號位表示一個數的符號。左邊第一位為第一符號位符號位s sf1f1,相鄰的為第二符號位,相鄰的為第二符號位s sf2f2。 雙符號位的含義為:雙符號位的含義為:0000表示正號;表示正號;0101表示產生正向溢出;表示產生正向溢出;1111表示負號;表示負號;1010表示產生負向溢出。表示產生負向溢出。 雙符號位可用邏輯異或來判斷溢出情況:雙符號位可用邏輯異或來判斷溢出情況:v=sv=sf1f1ssf2f2, , 若若v=0v=0,則無溢出
45、;,則無溢出;v=1v=1,則有溢出。,則有溢出。 即:運算結果的兩個符號位相同,則沒有溢出發生;即:運算結果的兩個符號位相同,則沒有溢出發生; 運算結果的兩個符號位不同,則發生了溢出,第一符號位運算結果的兩個符號位不同,則發生了溢出,第一符號位永遠是結果的真正符號位。永遠是結果的真正符號位。 計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器36例例1 1:已知:已知 x=0.1011 x=0.1011 , y=0.0111y=0.0111, 求求x+y=x+y=?解:解:xx 補補=00.1011=00.1011,yy 補補=00.0111=00.0111 x x
46、 補補= 00.1011= 00.1011 + y + y 補補= 00.0111= 00.0111 x+y x+y 補補= 01.0010 = 01.0010 兩符號位為兩符號位為0101,表示出現正向溢出。,表示出現正向溢出。例例2 2:已知:已知 x=-0.1011 x=-0.1011 , y=0.0111y=0.0111, 求求x-y=x-y=?解:解:xx 補補=11.0101=11.0101,-y-y 補補=11.1001=11.1001 x x 補補= 11.0101= 11.0101 + -y + -y 補補= 11.1001= 11.1001 x-y x-y 補補= = 1
47、1 10.1110 10.1110 已超出模值,丟掉已超出模值,丟掉 兩符號位為兩符號位為1010,表示出現負向溢出。,表示出現負向溢出。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器37進位判斷法進位判斷法 當兩個單符號位的補碼進行加減運算時,若最高數值位向符號位當兩個單符號位的補碼進行加減運算時,若最高數值位向符號位的進位值的進位值c c與符號位產生的進位輸出值與符號位產生的進位輸出值s s 相同,則沒有溢出發生。如相同,則沒有溢出發生。如果兩個進位值不同,則有溢出發生。其判斷溢出表達式如下:果兩個進位值不同,則有溢出發生。其判斷溢出表達式如下:v=scv=s
48、c例如:例如: xx 補補= 1.0101= 1.0101 + y + y 補補= 1.1001= 1.1001 x+y x+y 補補= 1 0.1110 = 1 0.1110 最高有效位沒有進位,即最高有效位沒有進位,即c=0c=0,符號位有進位,即,符號位有進位,即s=1s=1,故,故v=10=1v=10=1,有溢出發生。有溢出發生。 xx 補補= 1.1101= 1.1101 + y + y 補補= 0.1001= 0.1001 x+y x+y 補補= 1 0.0110 = 1 0.0110 最高有效位有進位,即最高有效位有進位,即c=1c=1,符號位有進位,即,符號位有進位,即s=1s
49、=1,故,故v=11=0v=11=0,無溢出發生,無溢出發生, x+y= + 0.0110 x+y= + 0.0110 。計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器382.2.2 基本的二進制加、減法器基本的二進制加、減法器(1)一位全加器)一位全加器設設x x和和y y兩個操作數分別為兩個操作數分別為 x xx xf f.x.xx xx x n n , y yy yf f.y.yy yy yn n表表2 25 5 一位全加器真值表一位全加器真值表x xi i y yi i c ci-1i-1 s si i c ci i 0 0 0 0 0 0 0 0 0 0
50、 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 01 0 1 0 1 0 10 1 1 1 0 0 10 1 1 1 1 1 11 1計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器39根據以上真值表可分別寫出根據以上真值表可分別寫出s si i和和c ci i的如下表達式:的如下表達式:s si i= x= xi i y yi i c ci-1i-1+ x+ xi i y yi i c ci-1i-1+ x+ xi i y yi i c ci-1i-1+ x+ xi i y
51、yi i c ci-1i-1= x= xi i + y + yi i + c + ci-1i-1 c ci i= x= xi i y yi i c ci-1i-1+ x+ xi i y yi i c ci-1i-1+ x+ xi i y yi i c ci-1i-1+ x+ xi i y yi i c ci-1i-1 = x= xi iy yi i + (x + (xi i + y + yi i) c) ci-1i-1 以上兩式用以上兩式用“異或異或”門構成一位全加器,門構成一位全加器,ci&1&=1si=1ci1xiyicisixiyi cosi cici1計算機組成原理計算
52、機組成原理 第二章第二章 運算方法與運算器運算方法與運算器40 2.2.2.22.2.2.2串行進位的并行加法器串行進位的并行加法器 當操作數為當操作數為n1位長時,需要用位長時,需要用n1位全加器構成加法器,位全加器構成加法器, 真正的結果依賴于進位信號的逐位產生。加法器求和的時間是進真正的結果依賴于進位信號的逐位產生。加法器求和的時間是進位信號的產生和傳遞所占用的時間。位信號的產生和傳遞所占用的時間。 cnsnxnyn cosn cicn1sn1xn1yn1 cosn1 cicisixiyi cosi cic2s2x2y2 cos2 cic1s1x1y1 cos1 cic0計算機組成原理計
53、算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器41 人們把人們把x xi iyyi i稱為進位傳遞函數或進位傳遞條件,并以稱為進位傳遞函數或進位傳遞條件,并以p pi i表示。而將表示。而將x xi iy yi i稱為進位產生函數或本地進位,并以稱為進位產生函數或本地進位,并以g gi i表示。所以,進位表達式又表示。所以,進位表達式又常表示為常表示為 c ci i= x= xi iy yi i + (x + (xi iyyi i) c) ci-1i-1 = g = gi i + p + pi i c ci-1i-1 串行進位鏈的表達式為:串行進位鏈的表達式為: c c1 1=
54、x= x1 1y y1 1 + (x + (x1 1yy1 1) c) c0 0 = g = g1 1 + p + p1 1 c c0 0 c c2 2= x= x2 2y y2 2 + (x + (x2 2yy2 2) c) c1 1 = g = g2 2 + p + p2 2 c c1 1 c c3 3= x= x3 3y y3 3 + (x + (x3 3yy3 3) c) c2 2 = g = g3 3 + p + p3 3 c c2 2 c cn-1n-1= x= xn-1n-1y y n-1 n-1 + (x + (x n-1 n-1yy n-1 n-1) c) c n-2 n-2
55、 = g = g n-1 n-1 + p + p n-1 n-1 c c n-2 n-2 c cn n= x= xn ny y n n + (x + (x n nyy n n) c) c n-1 n-1 = g = g n n + p + p n n c c n-1 n-1 從這組表達式中可以明顯地看到,某位的進位信號的產生,依賴于從這組表達式中可以明顯地看到,某位的進位信號的產生,依賴于低位進位信號的產生。要提高加法器的運算速度,就必須解決進位信低位進位信號的產生。要提高加法器的運算速度,就必須解決進位信號的產生和傳遞問題。號的產生和傳遞問題。 計算機組成原理計算機組成原理 第二章第二章 運
56、算方法與運算器運算方法與運算器42 (2 2)并行進位的并行加法器)并行進位的并行加法器 上式可以改寫成如下形式:上式可以改寫成如下形式: c c1 1= g= g1 1 + p + p1 1 c c0 0 c c2 2= g= g2 2 + p + p2 2 c c1 1= g= g2 2 + p + p2 2(g(g1 1 + p+ p1 1c c0 0) = g) = g2 2 + p + p2 2g g1 1 + p+ p2 2p p1 1c c0 0 c c3 3= g= g3 3 + p + p3 3 c c2 2= g= g3 3 + p + p3 3(g(g2 2 + p+ p
57、2 2c c1 1) = g) = g3 3 + p + p3 3g g2 2 + p+ p3 3p p2 2g g1 1 + p+ p3 3p p2 2p p1 1c c0 0 以此類推,以此類推, c c4 4= g= g4 4 + p + p4 4 c c3 3= g= g4 4 + p + p4 4g g3 3 + p + p4 4p p3 3g g2 2 + p+ p4 4p p3 3p p2 2g g1 1 + p+ p4 4p p3 3p p2 2p p1 1c c0 0 c cn-1n-1= g= g n-1 n-1 + p + p n-1 n-1g g n-2 n-2 + p
58、 + p n-1 n-1p p n-2 n-2g g n-3 n-3 + + p+ p n-1 n-1p p n-2 n-2p p n-3 n-3p p4 4p p3 3p p2 2g g1 1 + p+ p n-1 n-1p p n- n-2 2p p n-3 n-3p p4 4p p3 3p p2 2p p1 1c c0 0 c cn n= g= g n n + p + p n ng g n-1 n-1 + p + p n np p n-1 n-1g g n-2 n-2+ + + p+ p n np p n-1 n-1p p n-2 n-2p p4 4p p3 3p p2 2g g1 1
59、+ p+ p n np p n-1 n-1p p n- n-2 2p p4 4p p3 3p p2 2p p1 1c c0 0 各進位信號的產生不再與低位的進位信號有關,而只與兩個參加運算的數各進位信號的產生不再與低位的進位信號有關,而只與兩個參加運算的數和和c0有關。有關。 計算機組成原理計算機組成原理 第二章第二章 運算方法與運算器運算方法與運算器43 組內并行、組間串行的進位鏈組內并行、組間串行的進位鏈 這種進位鏈也稱為單重分組跳躍進位。以這種進位鏈也稱為單重分組跳躍進位。以16b16b加法器為例,一加法器為例,一般可分作般可分作4 4 個小組,每小級個小組,每小級4 4位,每組內部采用
60、并行進位結構,位,每組內部采用并行進位結構,組間采用串行進位傳遞結構。組間采用串行進位傳遞結構。 這里以最低這里以最低4b(4b(第第4b4b第第1b)1b)這一這一小組為例進行討論。它們各位的進位表達式為小組為例進行討論。它們各位的進位表達式為 c c1 1= g= g1 1 + p + p1 1 c c0 0 c c2 2= g= g2 2 + p + p2 2g g1 1 + p+ p2 2p p1 1c c0 0 c c3 3= g= g3 3 + p + p3 3g g2 2 + p+ p3 3p p2 2g g1 1 + p+ p3 3p p2 2p p1 1c c0 0 c c4 4= g= g4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒教育學 幼兒教育概述課件
- 打造幼教服務產業鏈園區生態圈
- 2024-2025學年下學期高二生物人教版期末必刷??碱}之生態系統的物質循環
- 部編版二年級下冊第七單元《大象的耳朵》教案
- 8 4 拋物線-2026版53高考數學總復習A版精煉
- 2025屆河北省唐山市高三二模語文試題(解析版)
- 2024-2025學年四川省雅安市高三第一次診斷性考試語文試題(解析版)
- 2024-2025學年山東省威海市文登區高三第一次模擬語文試題(解析版)
- it項目應急預案
- 信訪問題回復函
- 礦泉水配送合同協議
- 浙江省溫州市2023-2024學年高一下學期期末考試語文試卷(含答案)
- 道路保潔臺賬管理制度
- 全國衛生健康系統職業技能競賽(預防接種項目)備考試題庫-上(單選題部分)
- 模切安全生產培訓
- 2025-2030中國互聯網行業市場前景趨勢及競爭格局與投資研究報告
- 扶貧資產入股協議書
- 安寧療護之疼痛管理
- DBJ51T-041-2015-四川省-建筑節能門窗應用技術規程
- 中國中鐵股份有限公司內部控制運行管理辦法試行
- 酒后違紀違法警示教育
評論
0/150
提交評論