




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第2 2章章 運算方法和運算器運算方法和運算器本章內容:本章內容:v數(shù)據(jù)與文字的表示方法數(shù)據(jù)與文字的表示方法 v定點加法、減法運算定點加法、減法運算v定點乘法運算、除法運算定點乘法運算、除法運算v定點運算器的組成定點運算器的組成 v浮點運算方法和浮點運算器浮點運算方法和浮點運算器2.1 數(shù)據(jù)與文字的表示方法數(shù)據(jù)與文字的表示方法v數(shù)據(jù)表示方法數(shù)據(jù)表示方法 計算機中常用的數(shù)據(jù)表示格式有兩種,一是計算機中常用的數(shù)據(jù)表示格式有兩種,一是定點格式定點格式,二,二是是浮點格式浮點格式。1)1)定點表示:約定機器中所有數(shù)據(jù)的小數(shù)點位置是固定的。由定點表示:約定機器中所有數(shù)據(jù)的小數(shù)點位置是固定的。由于約定在
2、固定的位置,所以小數(shù)點就不再使用記號于約定在固定的位置,所以小數(shù)點就不再使用記號“.”.”來表來表示。假設用示。假設用n位數(shù)字表示一個定點數(shù)位數(shù)字表示一個定點數(shù)x x,x xn n在最左邊,并用數(shù)值在最左邊,并用數(shù)值0 0和和1 1分別表示正號和負號,稱為分別表示正號和負號,稱為數(shù)符數(shù)符;x xn-1n-1到到x x1 1表示該數(shù)的絕表示該數(shù)的絕對值,稱為對值,稱為尾數(shù)尾數(shù),則:,則:假想的小數(shù)點位置假想的小數(shù)點位置 xn xn-1 x3x2x1假想的小數(shù)點位置假想的小數(shù)點位置xn xn-1x3x2x1定點純小數(shù)定點純小數(shù)定點純整數(shù)定點純整數(shù)定點純小數(shù)的表示范圍:定點純小數(shù)的表示范圍:0|12
3、n xn x3x2x1 各位均為各位均為0 0時,時,x x絕對值最小為絕對值最小為0 0;xn x3x2x1 各位均為各位均為1 1時,時,x x絕對值最大為絕對值最大為1 12 2n n定點純整數(shù)的表示范圍:定點純整數(shù)的表示范圍:0| 2n1 xn x3x2x1各位均為各位均為0 0時,時,x x絕對值最小為絕對值最小為0 0;xn x3x2x1各位均為各位均為1 1時,時,x x絕對值最大為絕對值最大為2 2n n1 1 xn xn-1 x3x2x1xn xn-1 x3x2x1目前計算機多采用定點純整數(shù)表示方法,對定點數(shù)的運算稱為整數(shù)運算目前計算機多采用定點純整數(shù)表示方法,對定點數(shù)的運算
4、稱為整數(shù)運算 例例:某機器采用某機器采用8 8位定點整數(shù)表示方式,尾數(shù)是位定點整數(shù)表示方式,尾數(shù)是7 7位,數(shù)符是位,數(shù)符是1 1位,問最大的正數(shù)是多少?最小的負數(shù)是多少?若采用位,問最大的正數(shù)是多少?最小的負數(shù)是多少?若采用1616位定位定點整數(shù)表示方式,尾數(shù)是點整數(shù)表示方式,尾數(shù)是1515位,數(shù)符是位,數(shù)符是1 1位,問最大的正數(shù)是位,問最大的正數(shù)是多少?最小的負數(shù)是多少?多少?最小的負數(shù)是多少?解:解:8 8位定點整數(shù)表示:位定點整數(shù)表示:0 11111110 11111111 11111111 1111111最大正數(shù):最大正數(shù):最小負數(shù):最小負數(shù):X=(2X=(27 7-1)-1)10
5、10=(+127)=(+127)1010X=-(2X=-(27 7-1)-1)1010=(-127)=(-127)1010 16 16位定點整數(shù)表示:位定點整數(shù)表示:0 1111111111111110 111111111111111最大正數(shù):最大正數(shù):最小負數(shù):最小負數(shù):X=(2X=(21515-1)-1)1010=(+32767)=(+32767)1010X=-(2X=-(21515-1)-1)1010=(-32767)=(-32767)10101 1111111111111111 1111111111111112)浮點表示:定點數(shù)表示的數(shù)的范圍有限,為了擴展數(shù)的表)浮點表示:定點數(shù)表示的
6、數(shù)的范圍有限,為了擴展數(shù)的表示范圍,按照科學記數(shù)法表示數(shù)據(jù)的方式,任何一個二進制數(shù)示范圍,按照科學記數(shù)法表示數(shù)據(jù)的方式,任何一個二進制數(shù)N都可以表示成如下的格式:都可以表示成如下的格式:NM* *2eM :尾數(shù),是一個定點純小數(shù),決定數(shù)據(jù)的表示精度:尾數(shù),是一個定點純小數(shù),決定數(shù)據(jù)的表示精度 e :指數(shù),是一個定點純整數(shù):指數(shù),是一個定點純整數(shù),決定數(shù)據(jù)的表示范圍,決定數(shù)據(jù)的表示范圍 這樣就可以把一個數(shù)的尾數(shù)和階碼在計算機的不同存儲這樣就可以把一個數(shù)的尾數(shù)和階碼在計算機的不同存儲單元中分別予以存儲,在這種方法中小數(shù)點的位置隨階碼不單元中分別予以存儲,在這種方法中小數(shù)點的位置隨階碼不同在一定范圍
7、內可以移動,這種表示數(shù)據(jù)的方法稱為同在一定范圍內可以移動,這種表示數(shù)據(jù)的方法稱為浮點表浮點表示法示法。(1.75)(1.75)1010=(1.11)=(1.11)2 2=(0.111)=(0.111)2 22 21 1=(0.0111)=(0.0111)2 22 22 2 v定點表示定點表示-機器碼機器碼 一般書寫所表示的數(shù)據(jù)稱為一般書寫所表示的數(shù)據(jù)稱為真值真值,在計算機中通常把符號,在計算機中通常把符號位和數(shù)字位一起編碼來表示相應的數(shù),位和數(shù)字位一起編碼來表示相應的數(shù),這些編碼稱為這些編碼稱為機器碼機器碼。常用的機器碼有原碼、反碼、補碼和移碼。常用的機器碼有原碼、反碼、補碼和移碼。定點整數(shù):
8、定點整數(shù):X =(+6)X =(+6)10 10 XX原原= =0 000001100000110X =(-6)X =(-6)10 10 XX原原=2=27 7 (-6) =(-6) = 1 100001100000110定點小數(shù):定點小數(shù):X =(+0.75)X =(+0.75)1010 X X原原= =0 0.11.11X =(-0.75)X =(-0.75)1010 X X原原= =1 1.11.111 1)原碼)原碼 對于一個真值對于一個真值x,x,用用n n位定點整數(shù)表示的原碼形式為位定點整數(shù)表示的原碼形式為x xn-1n-1xx1 1x x0 0, , 其原碼表示的定義是:其原碼表
9、示的定義是: 原原 0 02 2n-1n-1 2 2n-1 n-1 - -2 2n-1 n-1 + |+ | -2| -2n-1 n-1 0 0采用采用8 8位定點原碼表示,則:位定點原碼表示,則:原碼的特點:原碼的特點:原碼的數(shù)值部分是該數(shù)的絕對值,最高位表示符號位,最高原碼的數(shù)值部分是該數(shù)的絕對值,最高位表示符號位,最高位為位為0是正數(shù),最高位為是正數(shù),最高位為1是負數(shù)。是負數(shù)。表示范圍:表示范圍: -2-2n nX2X2n n (若(若n=8n=8即:即:-128X128-128X128)111111111000000110000000000000000000000101111111-1
10、27 -1 -0 +0 +1 +127-127 -1 -0 +0 +1 +127采用原碼表示法簡單易懂,但是運算復雜。采用原碼表示法簡單易懂,但是運算復雜。0 0有兩種表示法:有兩種表示法:+0+0原原=0000 0000 -0=0000 0000 -0原原=1000 0000=1000 0000 -3+ -3+(+5+5)= +2= +2 1 10000011 -30000011 -3+ + 0 00000101 +50000101 +5 怎么計算?怎么計算? 符號位單獨處理符號位單獨處理 0000101 50000101 5 - 0000011 3 - 0000011 3 0000010
11、2 0000010 2 結果選擇符號位結果選擇符號位 0 00000010 20000010 22)2)補碼補碼 我們以鐘表對時為例說明補碼的概念。假設現(xiàn)在的標準時我們以鐘表對時為例說明補碼的概念。假設現(xiàn)在的標準時間為間為4 4點正;而有一只表已經(jīng)點正;而有一只表已經(jīng)7 7點了,為了校準時間,可以采用點了,為了校準時間,可以采用兩種方法:兩種方法: 一是將時針向后退一是將時針向后退3 3格,即格,即7-3=4 mod 127-3=4 mod 12; 一是將時針向前撥一是將時針向前撥9 9格,即格,即7+9=4 mod 127+9=4 mod 12; 這兩種方法都能對準到這兩種方法都能對準到4
12、4點,由此可以看出,點,由此可以看出,-3-3和和+9+9在對在對1212求余數(shù)時是等價的,我們稱求余數(shù)時是等價的,我們稱9 9是是(-3)(-3)對對1212的的補碼補碼,可以用數(shù),可以用數(shù)學公式表示:學公式表示: -3-3+9+9(mod12mod12) 同理:同理: -4-4+8+8(mod12mod12) -5-5+7+7(mod12mod12) mod12mod12的意思就是的意思就是1212模數(shù),這個模數(shù),這個“模?!北硎颈粊G掉的數(shù)值。表示被丟掉的數(shù)值。上式在數(shù)學上稱為同余式。上式在數(shù)學上稱為同余式。00000000考慮計算機中的考慮計算機中的8 8位定點存儲:位定點存儲:1111
13、1111最小最小最大最大+ 1+ 100000000mod 256mod 256-1 = 255 -1 = 255 -2 = 254 -2 = 254 -255 = 1 -255 = 1 -256 = 0 -256 = 0 -128 = 128 -128 = 128 -129 = 127 -129 = 127 考慮計算機中的考慮計算機中的8 8位補碼表示:位補碼表示:mod 256mod 256-1 = 255=11111111 -1 = 255=11111111 -2 = 254=11111110 -2 = 254=11111110 -255 = 1 = 00000001-255 = 1 =
14、 00000001-256 = 0 = 00000000 -256 = 0 = 00000000 -128 = 128=10000000 -128 = 128=10000000 -129 = 127=01111111 -129 = 127=01111111 mod 256mod 256-1 = 11111111 -1 = 11111111 -2 = 11111110 -2 = 11111110 1 = 00000001 1 = 00000001 0 = 00000000 0 = 00000000 -128 = 10000000 -128 = 10000000 127 = 01111111 12
15、7 = 01111111 補碼表補碼表示負數(shù)示負數(shù)8 8位補碼的表示范圍:位補碼的表示范圍:-128-128127127補碼的優(yōu)點補碼的優(yōu)點1 1)補碼表示的負數(shù)范圍可以到)補碼表示的負數(shù)范圍可以到2 2n n2 2)補碼表示的數(shù)據(jù)沒有符號位)補碼表示的數(shù)據(jù)沒有符號位( (我們還是習慣上認為補碼最高位為符號位我們還是習慣上認為補碼最高位為符號位) )10000000100000011111111100000000000000000000000101111111-128 -127 -1 -0 +0 +1 +127-128 -127 -1 -0 +0 +1 +1278 8位二進制數(shù)的補碼表示:位二
16、進制數(shù)的補碼表示:數(shù)數(shù) 補碼補碼 2 00000010 8 0000100011 00001011-3 11111101 -5 11111011-8 11111000 2+(- -5)=- -3 00000010 2+ 11111011 - -5 11111101 - -3 - -3+(- -5)=- -8 11111101 - -3+ 11111011 - -5 11111000 - -8 對于一個真值對于一個真值x,x,用用n n位定點整數(shù)表示的補碼形式為位定點整數(shù)表示的補碼形式為x xn-1n-1xx1 1x x0 0, , x xn-1n-1為為“符號位符號位”,其補碼表示的定義是:,
17、其補碼表示的定義是: 補補(mod 2(mod 2n n1 1) ) 0 02 2n-1n-1 2 2n n+ +2 2n n-|-| -2| -2n-1 n-1 0 0X X(11)(11)1010 x x補補= (11)= (11)1010= = 0 000010110001011X X(-13)(-13)1010 x x補補= 2= 28 8 + +(-13-13)= (243)= (243)1010= = 1 111100111110011 根據(jù)補碼定義,求負數(shù)的補碼需要加上一個負數(shù)根據(jù)補碼定義,求負數(shù)的補碼需要加上一個負數(shù)x x或者減或者減去去|x|x|。使用補碼就是為了在運算中消除
18、符號位的因素,但是。使用補碼就是為了在運算中消除符號位的因素,但是在求補碼的過程中還是需要考慮符號位,顯然沒有達到目的。在求補碼的過程中還是需要考慮符號位,顯然沒有達到目的。下面介紹的反碼表示法可以解決負數(shù)的求補問題。下面介紹的反碼表示法可以解決負數(shù)的求補問題。采用采用8 8位定點補碼表示,則:位定點補碼表示,則:3 3)反碼:正數(shù)的反碼等于原碼,負數(shù)的反碼等于除符號位外反碼:正數(shù)的反碼等于原碼,負數(shù)的反碼等于除符號位外其余二進制數(shù)碼其余二進制數(shù)碼0變成變成1,1變成變成0。 正數(shù):正數(shù): xx反反 = x= x原原 = x= x 負數(shù):負數(shù): 符號位不變,其余變反符號位不變,其余變反定點整數(shù)
19、:定點整數(shù): X X(11)(11)1010 x x原原00001011 x00001011 x反反=x=x原原=00001011=00001011X X(-13)(-13)1010 x x原原1 10001101 x0001101 x反反= =1 111100101110010X X-0 x-0 x原原1 10000000 x0000000 x反反= =1 111111111111111X X+0 x+0 x原原00000000 x00000000 x反反=00000000=00000000定點小數(shù):定點小數(shù):X X(0.75)(0.75)10 10 x 原原0.11 0.11 x x 反反
20、0.110.11X X(-0.25)(-0.25)1010 x x原原= =1 1.01 .01 x x 反反1 1.10.10補碼規(guī)則:正數(shù)的補碼等于原碼,負數(shù)的補碼等于反碼加補碼規(guī)則:正數(shù)的補碼等于原碼,負數(shù)的補碼等于反碼加1。 正數(shù):正數(shù): xx補補= x= x原原 負數(shù):負數(shù): xx補補= x= x反反 +1+1定點整數(shù):定點整數(shù):X X(11)(11)10 10 x x原原00001011 x00001011 x補補=x=x原原= 00001011= 00001011X X(-13)(-13)1010 x x原原1 10001101 x0001101 x補補=x=x 反反+1=+1=
21、1 111100111110011X X-0 x-0 x原原1 10000000 x0000000 x補補=x=x反反+1=00000000+1=00000000X X+0 x+0 x原原00000000 x00000000 x補補=00000000=00000000定點小數(shù):定點小數(shù):X X(0.75)(0.75)1010 x 原原0.11 0.11 x x 補補0.110.11X X(-0.25)(-0.25)1010 x x原原= =1 1.01 .01 x x 補補1 1.11.11111111111000000110000000000000000000000101111111-127
22、 -1 -0 +0 +1 +127-127 -1 -0 +0 +1 +127100000001111111011111111000000000000000101111111-127 -1 -0 +0 +1 +127-127 -1 -0 +0 +1 +12710000000100000011111111100000000000000000000000101111111-128 -127 -1 -0 +0 +1 +127-128 -127 -1 -0 +0 +1 +1278 8位二進制數(shù)的反碼表示:位二進制數(shù)的反碼表示:8 8位二進制數(shù)的補碼表示:位二進制數(shù)的補碼表示:8 8位二進制數(shù)的原碼表示:
23、位二進制數(shù)的原碼表示:v補碼的優(yōu)點補碼的優(yōu)點1 1)補碼中)補碼中0 0值唯一值唯一 2 2)補碼表示的負數(shù)范圍可以到)補碼表示的負數(shù)范圍可以到2 2n n3 3)補碼表示的數(shù)據(jù)沒有符號位)補碼表示的數(shù)據(jù)沒有符號位( (我們還是習慣上認為補碼最高位為符號位我們還是習慣上認為補碼最高位為符號位) ) 采用采用8 8位定點移碼表示,位定點移碼表示,以以表示真值,則:表示真值,則: 移移2 27 7 = 128 + = 128 + 例如:當正數(shù)例如:當正數(shù)10101011010101時:時: 移移2 27 72 27 7 +1010101+101010111010101110101011 1,101
24、01011010101 當負數(shù)當負數(shù)10101011010101時:時: 移移2 27 72 27 7 -1010101-101010100101011001010110 0,01010110101011注意:注意:移碼中最左邊一位是符號位。顯然,移碼中符號位表示移碼中最左邊一位是符號位。顯然,移碼中符號位表示的規(guī)律與原碼、補碼、反碼相反。即的規(guī)律與原碼、補碼、反碼相反。即1 1表示正數(shù),表示正數(shù),0 0表示負數(shù)。表示負數(shù)。4)4)移碼移碼 對于一個真值對于一個真值x,x,用用n n位定點整數(shù)表示的移碼形式為位定點整數(shù)表示的移碼形式為x xn-1n-1xx1 1x x0 0, , x xn-1
25、n-1為為“符號位符號位”,則移碼的則移碼的傳統(tǒng)定義傳統(tǒng)定義是是: 移移2 2n-1n-1 (1.75)10 =(1.11)2 =1.1120 =0.11121 =0.011122 若不對浮點數(shù)的表示作出明確規(guī)定,那么同一個浮點若不對浮點數(shù)的表示作出明確規(guī)定,那么同一個浮點數(shù)的表示方法不是唯一的:數(shù)的表示方法不是唯一的: 按照按照IEEE754IEEE754標準標準,3232位浮點數(shù)的標準格式為:位浮點數(shù)的標準格式為: 31 30 23 22 0SMES S位(位(1bit1bit):是浮點數(shù)的符號位,:是浮點數(shù)的符號位,0表示正數(shù),表示正數(shù),1表示負數(shù)。表示負數(shù)。規(guī)格化的浮點數(shù)表示:規(guī)格化的
26、浮點數(shù)表示:+0.1+0.1* * * * * *v浮點表示浮點表示-IEEE754-IEEE754E E位(位(8bit8bit):階碼,:階碼,IEEE754IEEE754規(guī)定此階碼是比實際數(shù)據(jù)的指數(shù)規(guī)定此階碼是比實際數(shù)據(jù)的指數(shù)真值多真值多127127。如果浮點數(shù)的指數(shù)真值是。如果浮點數(shù)的指數(shù)真值是e,e,則階碼則階碼E Ee+127e+127 31 30 23 22 0SME例如:例如: N N1.01011.0101* *2 2-127-127,指數(shù)真值是指數(shù)真值是e e-127-127,則階碼,則階碼E E0 0例如:例如: N N1.10011.1001* *2 2-12-12,指
27、數(shù)真值是指數(shù)真值是e e-12-12,則階碼,則階碼E E115115 使用帶偏移量的階碼(移碼)的好處是將有符號數(shù)使用帶偏移量的階碼(移碼)的好處是將有符號數(shù)(-127(-127+128)+128)轉化為了無符號數(shù)轉化為了無符號數(shù)(0(0255),255),所以所以 階碼域階碼域E E不用考慮符號位不用考慮符號位 便于兩個階碼之間的比較便于兩個階碼之間的比較 階碼域大者指數(shù)真值也大階碼域大者指數(shù)真值也大例如:例如: N N1.10011.1001* *2 2128128,指數(shù)真值是指數(shù)真值是e e128128,則階碼,則階碼E E255255例如:例如: N N1.01011.0101* *
28、2 28 8,指數(shù)真值是指數(shù)真值是e e8 8,則階碼,則階碼E E135135M位位(23)(23)位:尾數(shù),小數(shù)點在尾數(shù)域的最前面,為了尾數(shù)的位:尾數(shù),小數(shù)點在尾數(shù)域的最前面,為了尾數(shù)的表示精度提高一位,表示精度提高一位,IEEEIEEE規(guī)格化浮點數(shù)規(guī)定小數(shù)點左邊一位規(guī)格化浮點數(shù)規(guī)定小數(shù)點左邊一位必須為必須為1 1,即,即1.M1.M( (如如1.75=1.75=1.1120),),該位經(jīng)常不予存儲,所該位經(jīng)常不予存儲,所以以M位存儲的是有效數(shù)據(jù)的小數(shù)部分,位存儲的是有效數(shù)據(jù)的小數(shù)部分,因此尾數(shù)域因此尾數(shù)域M所表示所表示的值應該是的值應該是1.M1.M。 IEEE754 IEEE754 標
29、準中,一個規(guī)格化存儲的標準中,一個規(guī)格化存儲的3232位浮點數(shù)位浮點數(shù)的真的真值可表示為:值可表示為: x(-(-1) )s * * M * * 2e(-(-1) )s * *( (1.M) )* * 2E- -127 例例 若浮點數(shù)若浮點數(shù)的的754754標準存儲格式為標準存儲格式為(41360000)(41360000)1616,求其浮,求其浮點數(shù)的十進制數(shù)值。點數(shù)的十進制數(shù)值。 31 30 23 22 0SME 指數(shù)指數(shù)e e階碼階碼12712710000010100000100111111101111111(3)(3)1010尾數(shù)尾數(shù)1 1. .M1 1.011 0110 0000 0
30、000 0000 0000.011 0110 0000 0000 0000 00001 1.011011.011011于是有于是有( (1)1)s s(1.(1.M) )2 2e e (1.011011)(1.011011)2 23 31011.0111011.011(11.375)(11.375)1010 將十六進制數(shù)展開后,可得二進制數(shù)格式為:將十六進制數(shù)展開后,可得二進制數(shù)格式為:(41360000)(41360000)16 16 0100 0001 0011 0110 0000 0000 0000 0000 0100 0001 0011 0110 0000 0000 0000 0000
31、 SE(8E(8位位) )M(23(23位位) ) 指數(shù)指數(shù)e e階碼階碼12712701111110011111100111111101111111(-1)(-1)1010尾數(shù)尾數(shù)1 1. .M1 1.001 0001 0000 0000 0000 0000.001 0001 0000 0000 0000 00001 1.0010001.0010001于是有于是有( (1)1)s s(1.(1.M) )2 2e e (1.0010001)(1.0010001)2 2-1-10.100100010.10010001(0.5625)(0.5625)1010 將十六進制數(shù)展開后,可得二進制數(shù)格式為
32、:將十六進制數(shù)展開后,可得二進制數(shù)格式為:(3F110000)(3F110000)16 16 0011 1111 0001 0001 0000 0000 0000 0000 0011 1111 0001 0001 0000 0000 0000 0000 SE(8E(8位位) )M(23(23位位) ) 例例 若浮點數(shù)若浮點數(shù)的的754754標準存儲格式為標準存儲格式為(3F110000)(3F110000)1616,求其,求其浮點數(shù)的十進制數(shù)值。浮點數(shù)的十進制數(shù)值。 首先分別將整數(shù)和分數(shù)部分轉換成二進制數(shù):首先分別將整數(shù)和分數(shù)部分轉換成二進制數(shù): (20.59375)(20.59375)101
33、010100.1001110100.10011然后移動小數(shù)點,使其在第然后移動小數(shù)點,使其在第1 1,2 2位之間位之間 10100.1001110100.100111.0100100111.0100100112 24 4e e4 4于是得到:于是得到: S S0 0,E E4 4127127131=131=1000001110000011,M010010011010010011 最后得到最后得到3232位浮點數(shù)的二進制存儲格式為:位浮點數(shù)的二進制存儲格式為:0 0100 0001 1100 0001 1010010 0100 1100 0000 0000 00000100 1100 0000
34、 0000 0000(41A4C000)(41A4C000)1616 例例 將將(20.59375)(20.59375)1010轉換成轉換成754754標準的標準的3232位浮點數(shù)的二進制位浮點數(shù)的二進制存儲格式。存儲格式。注意:注意:v當階碼當階碼E E為全為全0 0且尾數(shù)且尾數(shù)M M也為全也為全0 0時,表示的真值時,表示的真值x x為零,結合符為零,結合符號位號位S S為為0 0或或1 1,有正零和負零之分。,有正零和負零之分。v當階碼當階碼E E為全為全1 1且尾數(shù)且尾數(shù)M M為全為全0 0時,表示的真值時,表示的真值x x為無窮大,結合為無窮大,結合符號位符號位S S為為0 0或或1
35、 1,就有,就有+和和-之分。之分。00000000000000000000000000000000正零正零10000000000000000000000000000000負零負零00000000000000000000000011111111+10000000000000000000000011111111-除去除去E E0 0和和255255,E E的范圍是的范圍是1 1254254,指數(shù)真值,指數(shù)真值e e的取值范圍是的取值范圍是-126-126+127+127 例例 假設由假設由S,E,MS,E,M三個域組成的一個三個域組成的一個3232位二進制字所表示的非零規(guī)格化浮位二進制字所表示的
36、非零規(guī)格化浮點數(shù)點數(shù), ,真值表示為(注意該例不是真值表示為(注意該例不是IEEEIEEE格式):格式): ( (1)1)s s(1.M)(1.M)2 2E E128128問:它所表示的規(guī)格化的最大正數(shù)、最小正數(shù)、最大負數(shù)、最小負數(shù)是多問:它所表示的規(guī)格化的最大正數(shù)、最小正數(shù)、最大負數(shù)、最小負數(shù)是多少?少?01111111111111111111111111111111最大正數(shù):最大正數(shù):11(1(12 2-23-23)2 212712700000000000000000000000000000000最小正數(shù):最小正數(shù):1.01.02 2-128-12811111111111111111111
37、111111111111最小負數(shù):最小負數(shù):-1-1(1(12 2-23-23)2 212712710000000000000000000000000000000最大負數(shù):最大負數(shù):-1.0-1.02 2-128-128v十進制數(shù)串的表示方法十進制數(shù)串的表示方法 BCDBCD碼形式:一個字節(jié)存放一個十進制的數(shù)位或符號位。碼形式:一個字節(jié)存放一個十進制的數(shù)位或符號位。00000010000000110000010100001000一個字節(jié)(一個字節(jié)(8bit8bit)十進制數(shù)串為:十進制數(shù)串為:2358壓縮壓縮BCDBCD碼碼形式:一個字節(jié)存放兩個十進制的數(shù)位。它比前一形式:一個字節(jié)存放兩個十進
38、制的數(shù)位。它比前一種形式節(jié)省存儲空間,又便于直接完成十進制數(shù)的算術運算,種形式節(jié)省存儲空間,又便于直接完成十進制數(shù)的算術運算,是廣泛采用的較為理想的方法。是廣泛采用的較為理想的方法。 1000001000111100一個字節(jié)(一個字節(jié)(8bit8bit)001101111101一個字節(jié)(一個字節(jié)(8bit8bit)十進制數(shù)串為:十進制數(shù)串為:823C表示正表示正D表示負表示負十進制數(shù)串為:十進制數(shù)串為:- -370000不滿一字節(jié)用不滿一字節(jié)用0補齊補齊v 字符表示方法字符表示方法字符的表示:字符的表示:ASCIIASCII碼碼( (美國國家信息交換標準字符碼美國國家信息交換標準字符碼) )
39、標準標準ASCIIASCII碼包括碼包括5252個英文大小寫字母,個英文大小寫字母,1010個數(shù)字,以及個數(shù)字,以及標點符號和特殊字符共標點符號和特殊字符共128128個元素,因此二進制編碼一共需要個元素,因此二進制編碼一共需要7 7位,規(guī)定最高一位為位,規(guī)定最高一位為0 0,所以,所以1 1個字節(jié)表示個字節(jié)表示1 1個字符。個字符。v字符串的表示方法字符串的表示方法 指連續(xù)一串字符,它們在主存中占用連續(xù)多個字節(jié),每個指連續(xù)一串字符,它們在主存中占用連續(xù)多個字節(jié),每個字節(jié)存一個字符的字節(jié)存一個字符的ACSIIACSII碼。例如字符串碼。例如字符串“thenthen”,占用,占用4 4個字節(jié)個字
40、節(jié)的連續(xù)內存空間,存放對應字符的的連續(xù)內存空間,存放對應字符的ASCIIASCII,即,即8484、7272、6969、7878v 漢字的表示方法漢字的表示方法漢字的輸入編碼:拼音碼,字型碼漢字的輸入編碼:拼音碼,字型碼漢字的存儲編碼:用兩個字節(jié)表示一個漢字,為了和漢字的存儲編碼:用兩個字節(jié)表示一個漢字,為了和ASCIIASCII碼碼 區(qū)分區(qū)分兩字節(jié)最高位均為兩字節(jié)最高位均為1漢字的輸出編碼:點陣表示的字模碼漢字的輸出編碼:點陣表示的字模碼v補碼加法補碼加法 基本公式:基本公式: xx補補 + y+ y補補 = x+y= x+y補補 計算機數(shù)據(jù):計算機數(shù)據(jù):xx補補 yy補補不考慮不考慮x和和
41、y的正負的正負xx補補 + y+ y補補 = x+y= x+y補補 當負數(shù)用補碼表示后,符號位作為數(shù)據(jù)的一部分一起參加當負數(shù)用補碼表示后,符號位作為數(shù)據(jù)的一部分一起參加運算,運算器運算,運算器不用考慮不用考慮參加加法運算的參加加法運算的操作數(shù)的正負操作數(shù)的正負以及以及結果結果的正負的正負,任意數(shù)的加法就可以化作正數(shù)加法來作。,任意數(shù)的加法就可以化作正數(shù)加法來作。公式證明思路:分三種情況:公式證明思路:分三種情況: (a) x(a) x、y y均為正值(均為正值(0,0,0 0) (b) x(b) x、y y一正一負(一正一負(0,0,0 0 或者或者0,00) (c) x(c) x、y y均為
42、負值(均為負值(0,0,00y0,有,有yy補補 yy原原,同時,同時-y-y原原x x1 1x x2 2x x3 3xxn n -y-y補補x x1 1x x2 2x x3 3xxn n+1+1 所以所以:-y:-y補補x x1 1x x2 2x x3 3xxn n+1= y+1= y原原+1+1yy補補 +1+1如果如果y0y0y0,有有 yy補補-y-y原原 x x1 1x x2 2x x3 3xxn n , yy補補yy反反+1+1x x1 1x x2 2x x3 3xxn n +1+1 y y補補x x1 1x x2 2x x3 3xxn n +1+1 x x1 1x x2 2x x
43、3 3xxn n-1-1 yy補補 yy補補-1-1 所以所以:-y:-y補補yy補補 +1+1補碼減法的補碼減法的基本公式:基本公式: xx補補 - y- y補補xx補補 + -y+ -y補補 機器中數(shù)據(jù)都是以補碼形式出現(xiàn),遇到減法操作時根據(jù)公機器中數(shù)據(jù)都是以補碼形式出現(xiàn),遇到減法操作時根據(jù)公式會轉成加法運算,利用硬件如何快速由式會轉成加法運算,利用硬件如何快速由yy補補得到得到-y-y補補呢?呢? 從從補補求求補補的法則是:的法則是: 對對補補“包括符號位求反且最末位加包括符號位求反且最末位加1”,即可得到即可得到補補 已知已知1補補1.0010, 2補補0.1101,求求1補補,2補補解
44、:解:1補補1.00101補補 1補補2-40.11010.00010.11102補補0.11012補補 2補補2-41.00100.00011.0011 利用硬件如何實現(xiàn)求反加利用硬件如何實現(xiàn)求反加1呢?加呢?加1好實現(xiàn),求反呢?好實現(xiàn),求反呢? 1 10,0 11,二進制數(shù)和,二進制數(shù)和1異或等于求反。異或等于求反。 1 01,0 00,二進制數(shù)和,二進制數(shù)和0異或等于不變。異或等于不變??梢栽诋惢蜷T的一端輸入可以在異或門的一端輸入1或者或者0決定數(shù)據(jù)求反或者不變決定數(shù)據(jù)求反或者不變計算機數(shù)據(jù):計算機數(shù)據(jù):xx補補 yy補補將減法變加法將減法變加法xx補補-y-y補補= =xx補補+-y+
45、-y補補 = x-y= x-y補補 當負數(shù)用補碼表示后,減法的運算就可以化成加法的運當負數(shù)用補碼表示后,減法的運算就可以化成加法的運算去做,這樣運算器就可以只有一個加法器,不必在配一個算去做,這樣運算器就可以只有一個加法器,不必在配一個減法器了,簡化了硬件的設計。減法器了,簡化了硬件的設計。程序員指令程序員指令: x x 減減 y yx - yx - y補碼減法基本公式:補碼減法基本公式: xx補補 - y- y補補xx補補 + -y+ -y補補v補碼的優(yōu)點補碼的優(yōu)點 1 1)補碼中)補碼中0 0值唯一值唯一 2 2)補碼表示的負數(shù)范圍可以到)補碼表示的負數(shù)范圍可以到2 2n n 3 3)補碼
46、表示的負數(shù)可以把減法運算變做加法來作,把任意數(shù)的加法)補碼表示的負數(shù)可以把減法運算變做加法來作,把任意數(shù)的加法變成正數(shù)的加法來作,簡化硬件電路的設計。變成正數(shù)的加法來作,簡化硬件電路的設計。v溢出:在定點數(shù)機器中溢出:在定點數(shù)機器中,數(shù)的大小超出了定點數(shù)能表數(shù)的大小超出了定點數(shù)能表示的范圍,叫溢出。示的范圍,叫溢出。1)在定點小數(shù)機中數(shù)的表示范圍是)在定點小數(shù)機中數(shù)的表示范圍是-1x1-1x1,如果運算過程中,如果運算過程中出現(xiàn)了大于出現(xiàn)了大于1或者小于或者小于1的情況。的情況。解解:補補0.1011 補補0.1001 補補0.1011 補補0.1001 補補1.0100 解解:補補1.001
47、11.0011 補補1.0101 補補1.0011 補補1.0101 補補0.1000 兩個正數(shù)相加的結果成為負數(shù)兩個正數(shù)相加的結果成為負數(shù),這顯然是錯誤的。這顯然是錯誤的。例如:例如:+0.1011 +0.1001 求求x+y?例如:例如:- -0.1101 - -0.1011 求求x+y?兩個負數(shù)相加的結果成為正數(shù)兩個負數(shù)相加的結果成為正數(shù),這顯然是錯誤的。這顯然是錯誤的。上溢出上溢出下溢出下溢出2)在定點整數(shù)機()在定點整數(shù)機(8位)中數(shù)的表示范圍是位)中數(shù)的表示范圍是-128x127-128x127,如果,如果運算過程中出現(xiàn)了大于運算過程中出現(xiàn)了大于127127或者小于或者小于1281
48、28的情況。的情況。解解:補補01110001 補補00110010 補補01110001 補補00110010 補補10100011解解:補補1001110110011101 補補1011101110111011 補補10011101 補補10111011 補補01011000 兩個正數(shù)相加的結果成為負數(shù)兩個正數(shù)相加的結果成為負數(shù),這顯然是錯誤的。這顯然是錯誤的。例如:例如:+1110001 +0110010 求求x+y?例如:例如:-1100011-1100011 -1000101-1000101 求求x+y?兩個負數(shù)相加的結果成為正數(shù)兩個負數(shù)相加的結果成為正數(shù),這顯然是錯誤的。這顯然是錯
49、誤的。上溢出上溢出下溢出下溢出如何檢測溢出呢?如何檢測溢出呢?v溢出判斷溢出判斷進位判別法:判斷數(shù)據(jù)最高位的進位與符號位進位是否相同進位判別法:判斷數(shù)據(jù)最高位的進位與符號位進位是否相同 V=CV=Cf fCC0 0 其中其中C Cf f為符號位產(chǎn)生的進位為符號位產(chǎn)生的進位,C,Co o為最高數(shù)據(jù)位產(chǎn)生的進位。為最高數(shù)據(jù)位產(chǎn)生的進位。 如果如果V=0, V=0, 無溢出無溢出 如果如果V=1, V=1, 有溢出有溢出 在計算機中,機器通過異或門邏輯電路判斷運算是否產(chǎn)在計算機中,機器通過異或門邏輯電路判斷運算是否產(chǎn)生了溢出,如果溢出就產(chǎn)生中斷。生了溢出,如果溢出就產(chǎn)生中斷。 補補0.1011 補補
50、0.1001 補補0.1011 補補0.1001 補補1.0100 上溢出上溢出補補1001110110011101 補補1011101110111011 補補10011101 補補10111011 補補 01011000 下溢出下溢出 雙符號位法:將符號位擴展為雙符號位法:將符號位擴展為2 2位,具體說就是對于正數(shù)兩位,具體說就是對于正數(shù)兩個符號位是個符號位是“0000”,對于負數(shù)兩個符號位是,對于負數(shù)兩個符號位是“1111”。兩個符號兩個符號位都看作數(shù)碼一樣參加運算。位都看作數(shù)碼一樣參加運算。兩個數(shù)相加后,其結果的符號位兩個數(shù)相加后,其結果的符號位出現(xiàn)出現(xiàn)“01”01”或或“10”10”兩
51、種組合時兩種組合時, ,表示發(fā)生溢出。表示發(fā)生溢出。符號位符號位“01”01”,上溢出,上溢出符號位符號位“10”10”,下溢出,下溢出符號位符號位“00”00”或者或者“11”11”,未溢出,未溢出補補0.1011 補補0.1001 補補00.1011 補補00.1001 補補01.0100 上溢出上溢出補補1001110110011101 補補10111011 補補110011101 補補110111011 補補101011000 下溢出下溢出v二進制加法二進制加法/減法器減法器 兩個二進制數(shù)字兩個二進制數(shù)字A Ai i,B,Bi i和一個進位輸入和一個進位輸入C Ci i相加相加, ,產(chǎn)
52、生一個和產(chǎn)生一個和輸出輸出S Si i, ,以及一個進位輸出以及一個進位輸出C Ci i1 1 S Si iA Ai iBBi iCCi i C Ci i1 1A Ai iB Bi iB Bi iC Ci iC Ci iA Ai i A Ai iB Bi i(A(Ai iBBi i)C)Ci i輸入輸入輸出輸出A Ai iB Bi iC Ci iS Si iC Ci+1i+10 00 00 00 00 00 00 01 11 10 00 01 10 01 10 00 01 11 10 01 11 10 00 01 10 01 10 01 10 01 11 11 10 00 01 11 11 1
53、1 11 11 1v行波進位的補碼加法減法器行波進位的補碼加法減法器2.3 定點乘法運算定點乘法運算 v原碼并行乘法原碼并行乘法 在定點計算機中在定點計算機中, ,兩個原碼表示的數(shù)相乘的運算規(guī)則是兩個原碼表示的數(shù)相乘的運算規(guī)則是: :乘積的符號位由兩數(shù)的符號位按異或運算得到乘積的符號位由兩數(shù)的符號位按異或運算得到, ,而乘積的數(shù)值而乘積的數(shù)值部分則是兩個正數(shù)相乘之積。部分則是兩個正數(shù)相乘之積。 設設n n位被乘數(shù)和乘數(shù)用定點小數(shù)表示位被乘數(shù)和乘數(shù)用定點小數(shù)表示( (定點整數(shù)也同樣適用定點整數(shù)也同樣適用) )被乘數(shù)被乘數(shù) 原原f f . .n n1 11 10 0 乘數(shù)乘數(shù) 原原f f . .n
54、 n1 11 10 0 則乘積則乘積 原原( (f ff f) )(0.(0.n n1 11 10 0) )* *(0.(0.n n1 11 10 0) ) 式中式中, ,f f為被乘數(shù)符號為被乘數(shù)符號, ,f f為乘數(shù)符號。為乘數(shù)符號。 人工算法人工算法 0. 1 1 0 1 0. 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0. 1 0 0 0 0 1 1 1機器算法:機器算法: 機器中一種方法是多次采用機器中一種方法是多次采用“加法移位加法移位” 的方的方 法來完成,稱為串行乘法器,它的硬件結構簡法來完成,稱為串行乘法器,它的硬件結構簡 單,但是速度慢
55、,目前廣泛使用的是流水式陣單,但是速度慢,目前廣泛使用的是流水式陣 列乘法器,稱為并行乘法器。列乘法器,稱為并行乘法器。不帶符號的并行乘法器不帶符號的并行乘法器 已知兩個不帶符號的二進制整數(shù)已知兩個不帶符號的二進制整數(shù)A A 11011,11011,B B 10101,10101,求它的乘積。求它的乘積。位積位積列和列和 n n位無符號數(shù)乘以位無符號數(shù)乘以n n位無符號數(shù)位無符號數(shù)會產(chǎn)生會產(chǎn)生n n* *n n個位積,個位積,n+nn+n個個列和,并行乘法器的關鍵是快速產(chǎn)生列和,并行乘法器的關鍵是快速產(chǎn)生n n* *n n個位積,對位積進個位積,對位積進行相加運算產(chǎn)生行相加運算產(chǎn)生n+nn+n
56、個列和。個列和。第一步:位積的產(chǎn)生第一步:位積的產(chǎn)生觀察乘法運算:觀察乘法運算:0 0* *0 00 0,0 0* *1 10 0,1 1* *0 00 0,1 1* *1 11 1 相當于:相當于:a ab所以所以n n* *n n個位積可以由個位積可以由n n* *n n個與門并行產(chǎn)生。個與門并行產(chǎn)生。位積產(chǎn)生部件位積產(chǎn)生部件被乘數(shù)被乘數(shù)乘數(shù)乘數(shù)A=aA=an-1n-1 a a1 1a a0 0b bn-1n-1 b b1 1b b0 0=B=Ba a0 0b b0 0a a1 1b b0 0a an-1n-1b bn-1n-1第二步:列和的產(chǎn)生:利用全加器第二步:列和的產(chǎn)生:利用全加器
57、在在n n位無符號數(shù)乘以位無符號數(shù)乘以n n位無符號數(shù)的運算中需要位無符號數(shù)的運算中需要n n* *(n-1n-1)個全加器虛線個全加器虛線圍起的是一個行波進位加法器圍起的是一個行波進位加法器豎線表示輸出豎線表示輸出斜線表示進位輸出斜線表示進位輸出FAFAa1b0a1b0a4b0a4b0a3b0a3b0a2b0a2b0a0b0a0b0a4b4a4b4a4b3a4b3a4b2a4b2a4b1a4b10 00 00 00 0a0b1a0b1a1b1a1b1a1b2a1b2a0b2a0b2a3b1a3b1a2b1a2b1a1b3a1b3a0b3a0b3a3b2a3b2a2b2a2b2a3b3a3b3
58、a2b3a2b3a0b4a0b4a0b4a0b4a0b4a0b4a0b4a0b40 0p0p0p4p4p3p3p2p2p1p1p7p7p6p6p5p5p8p8 p9 p9FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA不帶符號的并行乘法器不帶符號的并行乘法器位積產(chǎn)生部件位積產(chǎn)生部件列和產(chǎn)生部件列和產(chǎn)生部件 在在n n位無符號數(shù)乘以位無符號數(shù)乘以n n位無符號位無符號數(shù)的運算數(shù)的運算計算中,需要計算中,需要n n* *n n個與個與門并行產(chǎn)生位積,需要門并行產(chǎn)生位積,需要n n* *(n-1)
59、(n-1)個全加器產(chǎn)生列和。個全加器產(chǎn)生列和。被乘數(shù)被乘數(shù)乘數(shù)乘數(shù)A=aA=an-1n-1 a a1 1a a0 0b bn-1n-1 b b1 1b b0 0=B=Ba a0 0b b0 0a a1 1b b0 0a an-1n-1b bn-1n-1n n* *n n乘法陣列(陣列乘法器)乘法陣列(陣列乘法器)P = pP = p2n-1 2n-1 p p1 1 p p0 0帶符號的并行乘法器帶符號的并行乘法器 設設A=aA=an na an-1n-1aa1 1a a0 0和和B=bB=bn nb bn-1n-1bb1 1b b0 0均為用定點表示的均為用定點表示的(n(n1)1)位帶符號整
60、位帶符號整數(shù)。則求數(shù)。則求A A* *B B的過程如下:的過程如下: 1 1)將)將A A和和B B的數(shù)值位的數(shù)值位a an-1n-1aa1 1a a0 0和和b bn-1n-1bb1 1b b0 0輸送給輸送給n nn n位不帶符號的陣列位不帶符號的陣列乘法器乘法器, ,并由此產(chǎn)生并由此產(chǎn)生2n2n位真值乘積。位真值乘積。 2 2)將)將A A和和B B的符號位的符號位a an n和和b bn n進行異或作為結果的符號位。進行異或作為結果的符號位。 例例 設設(+15)(+15)1010, ,(-13)(-13)1010, ,用原碼陣列乘法器求出乘積用原碼陣列乘法器求出乘積?解:輸入數(shù)據(jù)為原
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年合同違約索賠審理的關鍵問題分析
- 貨物賒欠買賣合同范文
- 單位長期定向捐贈協(xié)議書
- 租房協(xié)議范本模板
- 2025倉儲場地租賃合同范本
- 2025化工產(chǎn)品供貨合同(中石油、中石化、化工商品買賣協(xié)議)空白版
- 2025年03月浙江嘉興市海鹽縣事業(yè)單位公開招聘工作人員96人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年03月北京西城區(qū)事業(yè)單位公開招聘13人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 脲醛塑料項目安全評估報告
- 長春工業(yè)大學《老子》2023-2024學年第一學期期末試卷
- 外科主治醫(yī)師資格考試(專業(yè)代碼317)題庫
- 2025-2030年中國PC鋼棒行業(yè)發(fā)展現(xiàn)狀及投資前景分析報告
- 2023-2024學年天津市和平區(qū)八年級(下)期末數(shù)學試卷(含答案)
- 全國計算機等級考試二級Python編程真題及答案解析(共10套真題)
- 合同順延確認函
- 2024年高中歷史 第14課 當代中國的外交說課稿 部編版選擇性必修1
- 【MOOC】人工智能:模型與算法-浙江大學 中國大學慕課MOOC答案
- Q/CSG 1 0007-2024電力設備預防性試驗規(guī)程
- 2024年10月自考00067財務管理學試題及答案
- 中西面點工藝基礎知識單選題100道及答案解析
- 第47 屆世界技能大賽商品展示技術項目技術文件
評論
0/150
提交評論