




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第2 2章章 運(yùn)算方法和運(yùn)算器運(yùn)算方法和運(yùn)算器本章內(nèi)容:本章內(nèi)容:v數(shù)據(jù)與文字的表示方法數(shù)據(jù)與文字的表示方法 v定點(diǎn)加法、減法運(yùn)算定點(diǎn)加法、減法運(yùn)算v定點(diǎn)乘法運(yùn)算、除法運(yùn)算定點(diǎn)乘法運(yùn)算、除法運(yùn)算v定點(diǎn)運(yùn)算器的組成定點(diǎn)運(yùn)算器的組成 v浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器2.1 數(shù)據(jù)與文字的表示方法數(shù)據(jù)與文字的表示方法v數(shù)據(jù)表示方法數(shù)據(jù)表示方法 計(jì)算機(jī)中常用的數(shù)據(jù)表示格式有兩種,一是計(jì)算機(jī)中常用的數(shù)據(jù)表示格式有兩種,一是定點(diǎn)格式定點(diǎn)格式,二,二是是浮點(diǎn)格式浮點(diǎn)格式。1)1)定點(diǎn)表示:約定機(jī)器中所有數(shù)據(jù)的小數(shù)點(diǎn)位置是固定的。由定點(diǎn)表示:約定機(jī)器中所有數(shù)據(jù)的小數(shù)點(diǎn)位置是固定的。由于約定在
2、固定的位置,所以小數(shù)點(diǎn)就不再使用記號于約定在固定的位置,所以小數(shù)點(diǎn)就不再使用記號“.”.”來表來表示。假設(shè)用示。假設(shè)用n位數(shù)字表示一個定點(diǎn)數(shù)位數(shù)字表示一個定點(diǎn)數(shù)x x,x xn n在最左邊,并用數(shù)值在最左邊,并用數(shù)值0 0和和1 1分別表示正號和負(fù)號,稱為分別表示正號和負(fù)號,稱為數(shù)符數(shù)符;x xn-1n-1到到x x1 1表示該數(shù)的絕表示該數(shù)的絕對值,稱為對值,稱為尾數(shù)尾數(shù),則:,則:假想的小數(shù)點(diǎn)位置假想的小數(shù)點(diǎn)位置 xn xn-1 x3x2x1假想的小數(shù)點(diǎn)位置假想的小數(shù)點(diǎn)位置xn xn-1x3x2x1定點(diǎn)純小數(shù)定點(diǎn)純小數(shù)定點(diǎn)純整數(shù)定點(diǎn)純整數(shù)定點(diǎn)純小數(shù)的表示范圍:定點(diǎn)純小數(shù)的表示范圍:0|12
3、n xn x3x2x1 各位均為各位均為0 0時,時,x x絕對值最小為絕對值最小為0 0;xn x3x2x1 各位均為各位均為1 1時,時,x x絕對值最大為絕對值最大為1 12 2n n定點(diǎn)純整數(shù)的表示范圍:定點(diǎn)純整數(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目前計(jì)算機(jī)多采用定點(diǎn)純整數(shù)表示方法,對定點(diǎn)數(shù)的運(yùn)算稱為整數(shù)運(yùn)算目前計(jì)算機(jī)多采用定點(diǎn)純整數(shù)表示方法,對定點(diǎn)數(shù)的運(yùn)算
4、稱為整數(shù)運(yùn)算 例例:某機(jī)器采用某機(jī)器采用8 8位定點(diǎn)整數(shù)表示方式,尾數(shù)是位定點(diǎn)整數(shù)表示方式,尾數(shù)是7 7位,數(shù)符是位,數(shù)符是1 1位,問最大的正數(shù)是多少?最小的負(fù)數(shù)是多少?若采用位,問最大的正數(shù)是多少?最小的負(fù)數(shù)是多少?若采用1616位定位定點(diǎn)整數(shù)表示方式,尾數(shù)是點(diǎn)整數(shù)表示方式,尾數(shù)是1515位,數(shù)符是位,數(shù)符是1 1位,問最大的正數(shù)是位,問最大的正數(shù)是多少?最小的負(fù)數(shù)是多少?多少?最小的負(fù)數(shù)是多少?解:解:8 8位定點(diǎn)整數(shù)表示:位定點(diǎn)整數(shù)表示:0 11111110 11111111 11111111 1111111最大正數(shù):最大正數(shù):最小負(fù)數(shù):最小負(fù)數(shù):X=(2X=(27 7-1)-1)10
5、10=(+127)=(+127)1010X=-(2X=-(27 7-1)-1)1010=(-127)=(-127)1010 16 16位定點(diǎn)整數(shù)表示:位定點(diǎn)整數(shù)表示:0 1111111111111110 111111111111111最大正數(shù):最大正數(shù):最小負(fù)數(shù):最小負(fù)數(shù):X=(2X=(21515-1)-1)1010=(+32767)=(+32767)1010X=-(2X=-(21515-1)-1)1010=(-32767)=(-32767)10101 1111111111111111 1111111111111112)浮點(diǎn)表示:定點(diǎn)數(shù)表示的數(shù)的范圍有限,為了擴(kuò)展數(shù)的表)浮點(diǎn)表示:定點(diǎn)數(shù)表示的
6、數(shù)的范圍有限,為了擴(kuò)展數(shù)的表示范圍,按照科學(xué)記數(shù)法表示數(shù)據(jù)的方式,任何一個二進(jìn)制數(shù)示范圍,按照科學(xué)記數(shù)法表示數(shù)據(jù)的方式,任何一個二進(jìn)制數(shù)N都可以表示成如下的格式:都可以表示成如下的格式:NM* *2eM :尾數(shù),是一個定點(diǎn)純小數(shù),決定數(shù)據(jù)的表示精度:尾數(shù),是一個定點(diǎn)純小數(shù),決定數(shù)據(jù)的表示精度 e :指數(shù),是一個定點(diǎn)純整數(shù):指數(shù),是一個定點(diǎn)純整數(shù),決定數(shù)據(jù)的表示范圍,決定數(shù)據(jù)的表示范圍 這樣就可以把一個數(shù)的尾數(shù)和階碼在計(jì)算機(jī)的不同存儲這樣就可以把一個數(shù)的尾數(shù)和階碼在計(jì)算機(jī)的不同存儲單元中分別予以存儲,在這種方法中小數(shù)點(diǎn)的位置隨階碼不單元中分別予以存儲,在這種方法中小數(shù)點(diǎn)的位置隨階碼不同在一定范圍
7、內(nèi)可以移動,這種表示數(shù)據(jù)的方法稱為同在一定范圍內(nèi)可以移動,這種表示數(shù)據(jù)的方法稱為浮點(diǎn)表浮點(diǎn)表示法示法。(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定點(diǎn)表示定點(diǎn)表示-機(jī)器碼機(jī)器碼 一般書寫所表示的數(shù)據(jù)稱為一般書寫所表示的數(shù)據(jù)稱為真值真值,在計(jì)算機(jī)中通常把符號,在計(jì)算機(jī)中通常把符號位和數(shù)字位一起編碼來表示相應(yīng)的數(shù),位和數(shù)字位一起編碼來表示相應(yīng)的數(shù),這些編碼稱為這些編碼稱為機(jī)器碼機(jī)器碼。常用的機(jī)器碼有原碼、反碼、補(bǔ)碼和移碼。常用的機(jī)器碼有原碼、反碼、補(bǔ)碼和移碼。定點(diǎn)整數(shù):
8、定點(diǎn)整數(shù):X =(+6)X =(+6)10 10 XX原原= =0 000001100000110X =(-6)X =(-6)10 10 XX原原=2=27 7 (-6) =(-6) = 1 100001100000110定點(diǎn)小數(shù):定點(diǎn)小數(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位定點(diǎn)整數(shù)表示的原碼形式為位定點(diǎn)整數(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位定點(diǎn)原碼表示,則:位定點(diǎn)原碼表示,則:原碼的特點(diǎn):原碼的特點(diǎn):原碼的數(shù)值部分是該數(shù)的絕對值,最高位表示符號位,最高原碼的數(shù)值部分是該數(shù)的絕對值,最高位表示符號位,最高位為位為0是正數(shù),最高位為是正數(shù),最高位為1是負(fù)數(shù)。是負(fù)數(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采用原碼表示法簡單易懂,但是運(yùn)算復(fù)雜。采用原碼表示法簡單易懂,但是運(yùn)算復(fù)雜。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 怎么計(jì)算?怎么計(jì)算? 符號位單獨(dú)處理符號位單獨(dú)處理 0000101 50000101 5 - 0000011 3 - 0000011 3 0000010
11、2 0000010 2 結(jié)果選擇符號位結(jié)果選擇符號位 0 00000010 20000010 22)2)補(bǔ)碼補(bǔ)碼 我們以鐘表對時為例說明補(bǔ)碼的概念。假設(shè)現(xiàn)在的標(biāo)準(zhǔn)時我們以鐘表對時為例說明補(bǔ)碼的概念。假設(shè)現(xiàn)在的標(biāo)準(zhǔn)時間為間為4 4點(diǎn)正;而有一只表已經(jīng)點(diǎn)正;而有一只表已經(jīng)7 7點(diǎn)了,為了校準(zhǔn)時間,可以采用點(diǎn)了,為了校準(zhǔn)時間,可以采用兩種方法:兩種方法: 一是將時針向后退一是將時針向后退3 3格,即格,即7-3=4 mod 127-3=4 mod 12; 一是將時針向前撥一是將時針向前撥9 9格,即格,即7+9=4 mod 127+9=4 mod 12; 這兩種方法都能對準(zhǔn)到這兩種方法都能對準(zhǔn)到4
12、4點(diǎn),由此可以看出,點(diǎn),由此可以看出,-3-3和和+9+9在對在對1212求余數(shù)時是等價的,我們稱求余數(shù)時是等價的,我們稱9 9是是(-3)(-3)對對1212的的補(bǔ)碼補(bǔ)碼,可以用數(shù),可以用數(shù)學(xué)公式表示:學(xué)公式表示: -3-3+9+9(mod12mod12) 同理:同理: -4-4+8+8(mod12mod12) -5-5+7+7(mod12mod12) mod12mod12的意思就是的意思就是1212模數(shù),這個模數(shù),這個“模模”表示被丟掉的數(shù)值。表示被丟掉的數(shù)值。上式在數(shù)學(xué)上稱為同余式。上式在數(shù)學(xué)上稱為同余式。00000000考慮計(jì)算機(jī)中的考慮計(jì)算機(jī)中的8 8位定點(diǎn)存儲:位定點(diǎn)存儲: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 考慮計(jì)算機(jī)中的考慮計(jì)算機(jī)中的8 8位補(bǔ)碼表示:位補(bǔ)碼表示: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 補(bǔ)碼表補(bǔ)碼表示負(fù)數(shù)示負(fù)數(shù)8 8位補(bǔ)碼的表示范圍:位補(bǔ)碼的表示范圍:-128-128127127補(bǔ)碼的優(yōu)點(diǎn)補(bǔ)碼的優(yōu)點(diǎn)1 1)補(bǔ)碼表示的負(fù)數(shù)范圍可以到)補(bǔ)碼表示的負(fù)數(shù)范圍可以到2 2n n2 2)補(bǔ)碼表示的數(shù)據(jù)沒有符號位)補(bǔ)碼表示的數(shù)據(jù)沒有符號位( (我們還是習(xí)慣上認(rèn)為補(bǔ)碼最高位為符號位我們還是習(xí)慣上認(rèn)為補(bǔ)碼最高位為符號位) )10000000100000011111111100000000000000000000000101111111-128 -127 -1 -0 +0 +1 +127-128 -127 -1 -0 +0 +1 +1278 8位二進(jìn)制數(shù)的補(bǔ)碼表示:位二
16、進(jìn)制數(shù)的補(bǔ)碼表示:數(shù)數(shù) 補(bǔ)碼補(bǔ)碼 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位定點(diǎn)整數(shù)表示的補(bǔ)碼形式為位定點(diǎn)整數(shù)表示的補(bǔ)碼形式為x xn-1n-1xx1 1x x0 0, , x xn-1n-1為為“符號位符號位”,其補(bǔ)碼表示的定義是:,
17、其補(bǔ)碼表示的定義是: 補(bǔ)補(bǔ)(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補(bǔ)補(bǔ)= (11)= (11)1010= = 0 000010110001011X X(-13)(-13)1010 x x補(bǔ)補(bǔ)= 2= 28 8 + +(-13-13)= (243)= (243)1010= = 1 111100111110011 根據(jù)補(bǔ)碼定義,求負(fù)數(shù)的補(bǔ)碼需要加上一個負(fù)數(shù)根據(jù)補(bǔ)碼定義,求負(fù)數(shù)的補(bǔ)碼需要加上一個負(fù)數(shù)x x或者減或者減去去|x|x|。使用補(bǔ)碼就是為了在運(yùn)算中消除
18、符號位的因素,但是。使用補(bǔ)碼就是為了在運(yùn)算中消除符號位的因素,但是在求補(bǔ)碼的過程中還是需要考慮符號位,顯然沒有達(dá)到目的。在求補(bǔ)碼的過程中還是需要考慮符號位,顯然沒有達(dá)到目的。下面介紹的反碼表示法可以解決負(fù)數(shù)的求補(bǔ)問題。下面介紹的反碼表示法可以解決負(fù)數(shù)的求補(bǔ)問題。采用采用8 8位定點(diǎn)補(bǔ)碼表示,則:位定點(diǎn)補(bǔ)碼表示,則:3 3)反碼:正數(shù)的反碼等于原碼,負(fù)數(shù)的反碼等于除符號位外反碼:正數(shù)的反碼等于原碼,負(fù)數(shù)的反碼等于除符號位外其余二進(jìn)制數(shù)碼其余二進(jìn)制數(shù)碼0變成變成1,1變成變成0。 正數(shù):正數(shù): xx反反 = x= x原原 = x= x 負(fù)數(shù):負(fù)數(shù): 符號位不變,其余變反符號位不變,其余變反定點(diǎn)整數(shù)
19、:定點(diǎn)整數(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定點(diǎn)小數(shù):定點(diǎn)小數(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補(bǔ)碼規(guī)則:正數(shù)的補(bǔ)碼等于原碼,負(fù)數(shù)的補(bǔ)碼等于反碼加補(bǔ)碼規(guī)則:正數(shù)的補(bǔ)碼等于原碼,負(fù)數(shù)的補(bǔ)碼等于反碼加1。 正數(shù):正數(shù): xx補(bǔ)補(bǔ)= x= x原原 負(fù)數(shù):負(fù)數(shù): xx補(bǔ)補(bǔ)= x= x反反 +1+1定點(diǎn)整數(shù):定點(diǎn)整數(shù):X X(11)(11)10 10 x x原原00001011 x00001011 x補(bǔ)補(bǔ)=x=x原原= 00001011= 00001011X X(-13)(-13)1010 x x原原1 10001101 x0001101 x補(bǔ)補(bǔ)=x=x 反反+1=+1=
21、1 111100111110011X X-0 x-0 x原原1 10000000 x0000000 x補(bǔ)補(bǔ)=x=x反反+1=00000000+1=00000000X X+0 x+0 x原原00000000 x00000000 x補(bǔ)補(bǔ)=00000000=00000000定點(diǎn)小數(shù):定點(diǎn)小數(shù):X X(0.75)(0.75)1010 x 原原0.11 0.11 x x 補(bǔ)補(bǔ)0.110.11X X(-0.25)(-0.25)1010 x x原原= =1 1.01 .01 x x 補(bǔ)補(bǔ)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位二進(jìn)制數(shù)的反碼表示:位二進(jìn)制數(shù)的反碼表示:8 8位二進(jìn)制數(shù)的補(bǔ)碼表示:位二進(jìn)制數(shù)的補(bǔ)碼表示:8 8位二進(jìn)制數(shù)的原碼表示:
23、位二進(jìn)制數(shù)的原碼表示:v補(bǔ)碼的優(yōu)點(diǎn)補(bǔ)碼的優(yōu)點(diǎn)1 1)補(bǔ)碼中)補(bǔ)碼中0 0值唯一值唯一 2 2)補(bǔ)碼表示的負(fù)數(shù)范圍可以到)補(bǔ)碼表示的負(fù)數(shù)范圍可以到2 2n n3 3)補(bǔ)碼表示的數(shù)據(jù)沒有符號位)補(bǔ)碼表示的數(shù)據(jù)沒有符號位( (我們還是習(xí)慣上認(rèn)為補(bǔ)碼最高位為符號位我們還是習(xí)慣上認(rèn)為補(bǔ)碼最高位為符號位) ) 采用采用8 8位定點(diǎn)移碼表示,位定點(diǎn)移碼表示,以以表示真值,則:表示真值,則: 移移2 27 7 = 128 + = 128 + 例如:當(dāng)正數(shù)例如:當(dāng)正數(shù)10101011010101時:時: 移移2 27 72 27 7 +1010101+101010111010101110101011 1,101
24、01011010101 當(dāng)負(fù)數(shù)當(dāng)負(fù)數(shù)10101011010101時:時: 移移2 27 72 27 7 -1010101-101010100101011001010110 0,01010110101011注意:注意:移碼中最左邊一位是符號位。顯然,移碼中符號位表示移碼中最左邊一位是符號位。顯然,移碼中符號位表示的規(guī)律與原碼、補(bǔ)碼、反碼相反。即的規(guī)律與原碼、補(bǔ)碼、反碼相反。即1 1表示正數(shù),表示正數(shù),0 0表示負(fù)數(shù)。表示負(fù)數(shù)。4)4)移碼移碼 對于一個真值對于一個真值x,x,用用n n位定點(diǎn)整數(shù)表示的移碼形式為位定點(diǎn)整數(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 若不對浮點(diǎn)數(shù)的表示作出明確規(guī)定,那么同一個浮點(diǎn)若不對浮點(diǎn)數(shù)的表示作出明確規(guī)定,那么同一個浮點(diǎn)數(shù)的表示方法不是唯一的:數(shù)的表示方法不是唯一的: 按照按照IEEE754IEEE754標(biāo)準(zhǔn)標(biāo)準(zhǔn),3232位浮點(diǎn)數(shù)的標(biāo)準(zhǔn)格式為:位浮點(diǎn)數(shù)的標(biāo)準(zhǔn)格式為: 31 30 23 22 0SMES S位(位(1bit1bit):是浮點(diǎn)數(shù)的符號位,:是浮點(diǎn)數(shù)的符號位,0表示正數(shù),表示正數(shù),1表示負(fù)數(shù)。表示負(fù)數(shù)。規(guī)格化的浮點(diǎn)數(shù)表示:規(guī)格化的
26、浮點(diǎn)數(shù)表示:+0.1+0.1* * * * * *v浮點(diǎn)表示浮點(diǎn)表示-IEEE754-IEEE754E E位(位(8bit8bit):階碼,:階碼,IEEE754IEEE754規(guī)定此階碼是比實(shí)際數(shù)據(jù)的指數(shù)規(guī)定此階碼是比實(shí)際數(shù)據(jù)的指數(shù)真值多真值多127127。如果浮點(diǎn)數(shù)的指數(shù)真值是。如果浮點(diǎn)數(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)轉(zhuǎn)化為了無符號數(shù)轉(zhuǎn)化為了無符號數(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ù)點(diǎn)在尾數(shù)域的最前面,為了尾數(shù)的位:尾數(shù),小數(shù)點(diǎn)在尾數(shù)域的最前面,為了尾數(shù)的表示精度提高一位,表示精度提高一位,IEEEIEEE規(guī)格化浮點(diǎn)數(shù)規(guī)定小數(shù)點(diǎn)左邊一位規(guī)格化浮點(diǎn)數(shù)規(guī)定小數(shù)點(diǎn)左邊一位必須為必須為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所表示所表示的值應(yīng)該是的值應(yīng)該是1.M1.M。 IEEE754 IEEE754 標(biāo)
29、準(zhǔn)中,一個規(guī)格化存儲的標(biāo)準(zhǔn)中,一個規(guī)格化存儲的3232位浮點(diǎn)數(shù)位浮點(diǎn)數(shù)的真的真值可表示為:值可表示為: x(-(-1) )s * * M * * 2e(-(-1) )s * *( (1.M) )* * 2E- -127 例例 若浮點(diǎn)數(shù)若浮點(diǎn)數(shù)的的754754標(biāo)準(zhǔn)存儲格式為標(biāo)準(zhǔn)存儲格式為(41360000)(41360000)1616,求其浮,求其浮點(diǎn)數(shù)的十進(jìn)制數(shù)值。點(diǎn)數(shù)的十進(jìn)制數(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 將十六進(jìn)制數(shù)展開后,可得二進(jìn)制數(shù)格式為:將十六進(jìn)制數(shù)展開后,可得二進(jìn)制數(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 將十六進(jìn)制數(shù)展開后,可得二進(jìn)制數(shù)格式為
32、:將十六進(jìn)制數(shù)展開后,可得二進(jìn)制數(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位位) ) 例例 若浮點(diǎn)數(shù)若浮點(diǎn)數(shù)的的754754標(biāo)準(zhǔn)存儲格式為標(biāo)準(zhǔn)存儲格式為(3F110000)(3F110000)1616,求其,求其浮點(diǎn)數(shù)的十進(jìn)制數(shù)值。浮點(diǎn)數(shù)的十進(jìn)制數(shù)值。 首先分別將整數(shù)和分?jǐn)?shù)部分轉(zhuǎn)換成二進(jìn)制數(shù):首先分別將整數(shù)和分?jǐn)?shù)部分轉(zhuǎn)換成二進(jìn)制數(shù): (20.59375)(20.59375)101
33、010100.1001110100.10011然后移動小數(shù)點(diǎn),使其在第然后移動小數(shù)點(diǎn),使其在第1 1,2 2位之間位之間 10100.1001110100.100111.0100100111.0100100112 24 4e e4 4于是得到:于是得到: S S0 0,E E4 4127127131=131=1000001110000011,M010010011010010011 最后得到最后得到3232位浮點(diǎn)數(shù)的二進(jìn)制存儲格式為:位浮點(diǎn)數(shù)的二進(jìn)制存儲格式為:0 0100 0001 1100 0001 1010010 0100 1100 0000 0000 00000100 1100 0000
34、 0000 0000(41A4C000)(41A4C000)1616 例例 將將(20.59375)(20.59375)1010轉(zhuǎn)換成轉(zhuǎn)換成754754標(biāo)準(zhǔn)的標(biāo)準(zhǔn)的3232位浮點(diǎn)數(shù)的二進(jìn)制位浮點(diǎn)數(shù)的二進(jìn)制存儲格式。存儲格式。注意:注意:v當(dāng)階碼當(dāng)階碼E E為全為全0 0且尾數(shù)且尾數(shù)M M也為全也為全0 0時,表示的真值時,表示的真值x x為零,結(jié)合符為零,結(jié)合符號位號位S S為為0 0或或1 1,有正零和負(fù)零之分。,有正零和負(fù)零之分。v當(dāng)階碼當(dāng)階碼E E為全為全1 1且尾數(shù)且尾數(shù)M M為全為全0 0時,表示的真值時,表示的真值x x為無窮大,結(jié)合為無窮大,結(jié)合符號位符號位S S為為0 0或或1
35、 1,就有,就有+和和-之分。之分。00000000000000000000000000000000正零正零10000000000000000000000000000000負(fù)零負(fù)零00000000000000000000000011111111+10000000000000000000000011111111-除去除去E E0 0和和255255,E E的范圍是的范圍是1 1254254,指數(shù)真值,指數(shù)真值e e的取值范圍是的取值范圍是-126-126+127+127 例例 假設(shè)由假設(shè)由S,E,MS,E,M三個域組成的一個三個域組成的一個3232位二進(jìn)制字所表示的非零規(guī)格化浮位二進(jìn)制字所表示的
36、非零規(guī)格化浮點(diǎn)數(shù)點(diǎn)數(shù), ,真值表示為(注意該例不是真值表示為(注意該例不是IEEEIEEE格式):格式): ( (1)1)s s(1.M)(1.M)2 2E E128128問:它所表示的規(guī)格化的最大正數(shù)、最小正數(shù)、最大負(fù)數(shù)、最小負(fù)數(shù)是多問:它所表示的規(guī)格化的最大正數(shù)、最小正數(shù)、最大負(fù)數(shù)、最小負(fù)數(shù)是多少?少?01111111111111111111111111111111最大正數(shù):最大正數(shù):11(1(12 2-23-23)2 212712700000000000000000000000000000000最小正數(shù):最小正數(shù):1.01.02 2-128-12811111111111111111111
37、111111111111最小負(fù)數(shù):最小負(fù)數(shù):-1-1(1(12 2-23-23)2 212712710000000000000000000000000000000最大負(fù)數(shù):最大負(fù)數(shù):-1.0-1.02 2-128-128v十進(jìn)制數(shù)串的表示方法十進(jìn)制數(shù)串的表示方法 BCDBCD碼形式:一個字節(jié)存放一個十進(jìn)制的數(shù)位或符號位。碼形式:一個字節(jié)存放一個十進(jìn)制的數(shù)位或符號位。00000010000000110000010100001000一個字節(jié)(一個字節(jié)(8bit8bit)十進(jìn)制數(shù)串為:十進(jìn)制數(shù)串為:2358壓縮壓縮BCDBCD碼碼形式:一個字節(jié)存放兩個十進(jìn)制的數(shù)位。它比前一形式:一個字節(jié)存放兩個十進(jìn)
38、制的數(shù)位。它比前一種形式節(jié)省存儲空間,又便于直接完成十進(jìn)制數(shù)的算術(shù)運(yùn)算,種形式節(jié)省存儲空間,又便于直接完成十進(jìn)制數(shù)的算術(shù)運(yùn)算,是廣泛采用的較為理想的方法。是廣泛采用的較為理想的方法。 1000001000111100一個字節(jié)(一個字節(jié)(8bit8bit)001101111101一個字節(jié)(一個字節(jié)(8bit8bit)十進(jìn)制數(shù)串為:十進(jìn)制數(shù)串為:823C表示正表示正D表示負(fù)表示負(fù)十進(jìn)制數(shù)串為:十進(jìn)制數(shù)串為:- -370000不滿一字節(jié)用不滿一字節(jié)用0補(bǔ)齊補(bǔ)齊v 字符表示方法字符表示方法字符的表示:字符的表示:ASCIIASCII碼碼( (美國國家信息交換標(biāo)準(zhǔn)字符碼美國國家信息交換標(biāo)準(zhǔn)字符碼) )
39、標(biāo)準(zhǔn)標(biāo)準(zhǔn)ASCIIASCII碼包括碼包括5252個英文大小寫字母,個英文大小寫字母,1010個數(shù)字,以及個數(shù)字,以及標(biāo)點(diǎn)符號和特殊字符共標(biāo)點(diǎn)符號和特殊字符共128128個元素,因此二進(jìn)制編碼一共需要個元素,因此二進(jìn)制編碼一共需要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ù)內(nèi)存空間,存放對應(yīng)字符的的連續(xù)內(nèi)存空間,存放對應(yīng)字符的ASCIIASCII,即,即8484、7272、6969、7878v 漢字的表示方法漢字的表示方法漢字的輸入編碼:拼音碼,字型碼漢字的輸入編碼:拼音碼,字型碼漢字的存儲編碼:用兩個字節(jié)表示一個漢字,為了和漢字的存儲編碼:用兩個字節(jié)表示一個漢字,為了和ASCIIASCII碼碼 區(qū)分區(qū)分兩字節(jié)最高位均為兩字節(jié)最高位均為1漢字的輸出編碼:點(diǎn)陣表示的字模碼漢字的輸出編碼:點(diǎn)陣表示的字模碼v補(bǔ)碼加法補(bǔ)碼加法 基本公式:基本公式: xx補(bǔ)補(bǔ) + y+ y補(bǔ)補(bǔ) = x+y= x+y補(bǔ)補(bǔ) 計(jì)算機(jī)數(shù)據(jù):計(jì)算機(jī)數(shù)據(jù):xx補(bǔ)補(bǔ) yy補(bǔ)補(bǔ)不考慮不考慮x和和
41、y的正負(fù)的正負(fù)xx補(bǔ)補(bǔ) + y+ y補(bǔ)補(bǔ) = x+y= x+y補(bǔ)補(bǔ) 當(dāng)負(fù)數(shù)用補(bǔ)碼表示后,符號位作為數(shù)據(jù)的一部分一起參加當(dāng)負(fù)數(shù)用補(bǔ)碼表示后,符號位作為數(shù)據(jù)的一部分一起參加運(yùn)算,運(yùn)算器運(yùn)算,運(yùn)算器不用考慮不用考慮參加加法運(yùn)算的參加加法運(yùn)算的操作數(shù)的正負(fù)操作數(shù)的正負(fù)以及以及結(jié)果結(jié)果的正負(fù)的正負(fù),任意數(shù)的加法就可以化作正數(shù)加法來作。,任意數(shù)的加法就可以化作正數(shù)加法來作。公式證明思路:分三種情況:公式證明思路:分三種情況: (a) x(a) x、y y均為正值(均為正值(0,0,0 0) (b) x(b) x、y y一正一負(fù)(一正一負(fù)(0,0,0 0 或者或者0,00) (c) x(c) x、y y均為
42、負(fù)值(均為負(fù)值(0,0,00y0,有,有yy補(bǔ)補(bǔ) yy原原,同時,同時-y-y原原x x1 1x x2 2x x3 3xxn n -y-y補(bǔ)補(bǔ)x x1 1x x2 2x x3 3xxn n+1+1 所以所以:-y:-y補(bǔ)補(bǔ)x x1 1x x2 2x x3 3xxn n+1= y+1= y原原+1+1yy補(bǔ)補(bǔ) +1+1如果如果y0y0y0,有有 yy補(bǔ)補(bǔ)-y-y原原 x x1 1x x2 2x x3 3xxn n , yy補(bǔ)補(bǔ)yy反反+1+1x x1 1x x2 2x x3 3xxn n +1+1 y y補(bǔ)補(bǔ)x x1 1x x2 2x x3 3xxn n +1+1 x x1 1x x2 2x x
43、3 3xxn n-1-1 yy補(bǔ)補(bǔ) yy補(bǔ)補(bǔ)-1-1 所以所以:-y:-y補(bǔ)補(bǔ)yy補(bǔ)補(bǔ) +1+1補(bǔ)碼減法的補(bǔ)碼減法的基本公式:基本公式: xx補(bǔ)補(bǔ) - y- y補(bǔ)補(bǔ)xx補(bǔ)補(bǔ) + -y+ -y補(bǔ)補(bǔ) 機(jī)器中數(shù)據(jù)都是以補(bǔ)碼形式出現(xiàn),遇到減法操作時根據(jù)公機(jī)器中數(shù)據(jù)都是以補(bǔ)碼形式出現(xiàn),遇到減法操作時根據(jù)公式會轉(zhuǎn)成加法運(yùn)算,利用硬件如何快速由式會轉(zhuǎn)成加法運(yùn)算,利用硬件如何快速由yy補(bǔ)補(bǔ)得到得到-y-y補(bǔ)補(bǔ)呢?呢? 從從補(bǔ)補(bǔ)求求補(bǔ)補(bǔ)的法則是:的法則是: 對對補(bǔ)補(bǔ)“包括符號位求反且最末位加包括符號位求反且最末位加1”,即可得到即可得到補(bǔ)補(bǔ) 已知已知1補(bǔ)補(bǔ)1.0010, 2補(bǔ)補(bǔ)0.1101,求求1補(bǔ)補(bǔ),2補(bǔ)補(bǔ)解
44、:解:1補(bǔ)補(bǔ)1.00101補(bǔ)補(bǔ) 1補(bǔ)補(bǔ)2-40.11010.00010.11102補(bǔ)補(bǔ)0.11012補(bǔ)補(bǔ) 2補(bǔ)補(bǔ)2-41.00100.00011.0011 利用硬件如何實(shí)現(xiàn)求反加利用硬件如何實(shí)現(xiàn)求反加1呢?加呢?加1好實(shí)現(xiàn),求反呢?好實(shí)現(xiàn),求反呢? 1 10,0 11,二進(jìn)制數(shù)和,二進(jìn)制數(shù)和1異或等于求反。異或等于求反。 1 01,0 00,二進(jìn)制數(shù)和,二進(jìn)制數(shù)和0異或等于不變。異或等于不變??梢栽诋惢蜷T的一端輸入可以在異或門的一端輸入1或者或者0決定數(shù)據(jù)求反或者不變決定數(shù)據(jù)求反或者不變計(jì)算機(jī)數(shù)據(jù):計(jì)算機(jī)數(shù)據(jù):xx補(bǔ)補(bǔ) yy補(bǔ)補(bǔ)將減法變加法將減法變加法xx補(bǔ)補(bǔ)-y-y補(bǔ)補(bǔ)= =xx補(bǔ)補(bǔ)+-y+
45、-y補(bǔ)補(bǔ) = x-y= x-y補(bǔ)補(bǔ) 當(dāng)負(fù)數(shù)用補(bǔ)碼表示后,減法的運(yùn)算就可以化成加法的運(yùn)當(dāng)負(fù)數(shù)用補(bǔ)碼表示后,減法的運(yùn)算就可以化成加法的運(yùn)算去做,這樣運(yùn)算器就可以只有一個加法器,不必在配一個算去做,這樣運(yùn)算器就可以只有一個加法器,不必在配一個減法器了,簡化了硬件的設(shè)計(jì)。減法器了,簡化了硬件的設(shè)計(jì)。程序員指令程序員指令: x x 減減 y yx - yx - y補(bǔ)碼減法基本公式:補(bǔ)碼減法基本公式: xx補(bǔ)補(bǔ) - y- y補(bǔ)補(bǔ)xx補(bǔ)補(bǔ) + -y+ -y補(bǔ)補(bǔ)v補(bǔ)碼的優(yōu)點(diǎn)補(bǔ)碼的優(yōu)點(diǎn) 1 1)補(bǔ)碼中)補(bǔ)碼中0 0值唯一值唯一 2 2)補(bǔ)碼表示的負(fù)數(shù)范圍可以到)補(bǔ)碼表示的負(fù)數(shù)范圍可以到2 2n n 3 3)補(bǔ)碼
46、表示的負(fù)數(shù)可以把減法運(yùn)算變做加法來作,把任意數(shù)的加法)補(bǔ)碼表示的負(fù)數(shù)可以把減法運(yùn)算變做加法來作,把任意數(shù)的加法變成正數(shù)的加法來作,簡化硬件電路的設(shè)計(jì)。變成正數(shù)的加法來作,簡化硬件電路的設(shè)計(jì)。v溢出:在定點(diǎn)數(shù)機(jī)器中溢出:在定點(diǎn)數(shù)機(jī)器中,數(shù)的大小超出了定點(diǎn)數(shù)能表數(shù)的大小超出了定點(diǎn)數(shù)能表示的范圍,叫溢出。示的范圍,叫溢出。1)在定點(diǎn)小數(shù)機(jī)中數(shù)的表示范圍是)在定點(diǎn)小數(shù)機(jī)中數(shù)的表示范圍是-1x1-1x1,如果運(yùn)算過程中,如果運(yùn)算過程中出現(xiàn)了大于出現(xiàn)了大于1或者小于或者小于1的情況。的情況。解解:補(bǔ)補(bǔ)0.1011 補(bǔ)補(bǔ)0.1001 補(bǔ)補(bǔ)0.1011 補(bǔ)補(bǔ)0.1001 補(bǔ)補(bǔ)1.0100 解解:補(bǔ)補(bǔ)1.001
47、11.0011 補(bǔ)補(bǔ)1.0101 補(bǔ)補(bǔ)1.0011 補(bǔ)補(bǔ)1.0101 補(bǔ)補(bǔ)0.1000 兩個正數(shù)相加的結(jié)果成為負(fù)數(shù)兩個正數(shù)相加的結(jié)果成為負(fù)數(shù),這顯然是錯誤的。這顯然是錯誤的。例如:例如:+0.1011 +0.1001 求求x+y?例如:例如:- -0.1101 - -0.1011 求求x+y?兩個負(fù)數(shù)相加的結(jié)果成為正數(shù)兩個負(fù)數(shù)相加的結(jié)果成為正數(shù),這顯然是錯誤的。這顯然是錯誤的。上溢出上溢出下溢出下溢出2)在定點(diǎn)整數(shù)機(jī)()在定點(diǎn)整數(shù)機(jī)(8位)中數(shù)的表示范圍是位)中數(shù)的表示范圍是-128x127-128x127,如果,如果運(yùn)算過程中出現(xiàn)了大于運(yùn)算過程中出現(xiàn)了大于127127或者小于或者小于1281
48、28的情況。的情況。解解:補(bǔ)補(bǔ)01110001 補(bǔ)補(bǔ)00110010 補(bǔ)補(bǔ)01110001 補(bǔ)補(bǔ)00110010 補(bǔ)補(bǔ)10100011解解:補(bǔ)補(bǔ)1001110110011101 補(bǔ)補(bǔ)1011101110111011 補(bǔ)補(bǔ)10011101 補(bǔ)補(bǔ)10111011 補(bǔ)補(bǔ)01011000 兩個正數(shù)相加的結(jié)果成為負(fù)數(shù)兩個正數(shù)相加的結(jié)果成為負(fù)數(shù),這顯然是錯誤的。這顯然是錯誤的。例如:例如:+1110001 +0110010 求求x+y?例如:例如:-1100011-1100011 -1000101-1000101 求求x+y?兩個負(fù)數(shù)相加的結(jié)果成為正數(shù)兩個負(fù)數(shù)相加的結(jié)果成為正數(shù),這顯然是錯誤的。這顯然是錯
49、誤的。上溢出上溢出下溢出下溢出如何檢測溢出呢?如何檢測溢出呢?v溢出判斷溢出判斷進(jìn)位判別法:判斷數(shù)據(jù)最高位的進(jìn)位與符號位進(jìn)位是否相同進(jìn)位判別法:判斷數(shù)據(jù)最高位的進(jìn)位與符號位進(jìn)位是否相同 V=CV=Cf fCC0 0 其中其中C Cf f為符號位產(chǎn)生的進(jìn)位為符號位產(chǎn)生的進(jìn)位,C,Co o為最高數(shù)據(jù)位產(chǎn)生的進(jìn)位。為最高數(shù)據(jù)位產(chǎn)生的進(jìn)位。 如果如果V=0, V=0, 無溢出無溢出 如果如果V=1, V=1, 有溢出有溢出 在計(jì)算機(jī)中,機(jī)器通過異或門邏輯電路判斷運(yùn)算是否產(chǎn)在計(jì)算機(jī)中,機(jī)器通過異或門邏輯電路判斷運(yùn)算是否產(chǎn)生了溢出,如果溢出就產(chǎn)生中斷。生了溢出,如果溢出就產(chǎn)生中斷。 補(bǔ)補(bǔ)0.1011 補(bǔ)補(bǔ)
50、0.1001 補(bǔ)補(bǔ)0.1011 補(bǔ)補(bǔ)0.1001 補(bǔ)補(bǔ)1.0100 上溢出上溢出補(bǔ)補(bǔ)1001110110011101 補(bǔ)補(bǔ)1011101110111011 補(bǔ)補(bǔ)10011101 補(bǔ)補(bǔ)10111011 補(bǔ)補(bǔ) 01011000 下溢出下溢出 雙符號位法:將符號位擴(kuò)展為雙符號位法:將符號位擴(kuò)展為2 2位,具體說就是對于正數(shù)兩位,具體說就是對于正數(shù)兩個符號位是個符號位是“0000”,對于負(fù)數(shù)兩個符號位是,對于負(fù)數(shù)兩個符號位是“1111”。兩個符號兩個符號位都看作數(shù)碼一樣參加運(yùn)算。位都看作數(shù)碼一樣參加運(yùn)算。兩個數(shù)相加后,其結(jié)果的符號位兩個數(shù)相加后,其結(jié)果的符號位出現(xiàn)出現(xiàn)“01”01”或或“10”10”兩
51、種組合時兩種組合時, ,表示發(fā)生溢出。表示發(fā)生溢出。符號位符號位“01”01”,上溢出,上溢出符號位符號位“10”10”,下溢出,下溢出符號位符號位“00”00”或者或者“11”11”,未溢出,未溢出補(bǔ)補(bǔ)0.1011 補(bǔ)補(bǔ)0.1001 補(bǔ)補(bǔ)00.1011 補(bǔ)補(bǔ)00.1001 補(bǔ)補(bǔ)01.0100 上溢出上溢出補(bǔ)補(bǔ)1001110110011101 補(bǔ)補(bǔ)10111011 補(bǔ)補(bǔ)110011101 補(bǔ)補(bǔ)110111011 補(bǔ)補(bǔ)101011000 下溢出下溢出v二進(jìn)制加法二進(jìn)制加法/減法器減法器 兩個二進(jìn)制數(shù)字兩個二進(jìn)制數(shù)字A Ai i,B,Bi i和一個進(jìn)位輸入和一個進(jìn)位輸入C Ci i相加相加, ,產(chǎn)
52、生一個和產(chǎn)生一個和輸出輸出S Si i, ,以及一個進(jìn)位輸出以及一個進(jìn)位輸出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行波進(jìn)位的補(bǔ)碼加法減法器行波進(jìn)位的補(bǔ)碼加法減法器2.3 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算 v原碼并行乘法原碼并行乘法 在定點(diǎn)計(jì)算機(jī)中在定點(diǎn)計(jì)算機(jī)中, ,兩個原碼表示的數(shù)相乘的運(yùn)算規(guī)則是兩個原碼表示的數(shù)相乘的運(yùn)算規(guī)則是: :乘積的符號位由兩數(shù)的符號位按異或運(yùn)算得到乘積的符號位由兩數(shù)的符號位按異或運(yùn)算得到, ,而乘積的數(shù)值而乘積的數(shù)值部分則是兩個正數(shù)相乘之積。部分則是兩個正數(shù)相乘之積。 設(shè)設(shè)n n位被乘數(shù)和乘數(shù)用定點(diǎn)小數(shù)表示位被乘數(shù)和乘數(shù)用定點(diǎn)小數(shù)表示( (定點(diǎn)整數(shù)也同樣適用定點(diǎn)整數(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機(jī)器算法:機(jī)器算法: 機(jī)器中一種方法是多次采用機(jī)器中一種方法是多次采用“加法移位加法移位” 的方的方 法來完成,稱為串行乘法器,它的硬件結(jié)構(gòu)簡法來完成,稱為串行乘法器,它的硬件結(jié)構(gòu)簡 單,但是速度慢
55、,目前廣泛使用的是流水式陣單,但是速度慢,目前廣泛使用的是流水式陣 列乘法器,稱為并行乘法器。列乘法器,稱為并行乘法器。不帶符號的并行乘法器不帶符號的并行乘法器 已知兩個不帶符號的二進(jìn)制整數(shù)已知兩個不帶符號的二進(jìn)制整數(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個個列和,并行乘法器的關(guān)鍵是快速產(chǎn)生列和,并行乘法器的關(guān)鍵是快速產(chǎn)生n n* *n n個位積,對位積進(jìn)個位積,對位積進(jìn)行相加運(yùn)算產(chǎn)生行相加運(yùn)算產(chǎn)生n+nn+n
56、個列和。個列和。第一步:位積的產(chǎn)生第一步:位積的產(chǎn)生觀察乘法運(yùn)算:觀察乘法運(yùn)算:0 0* *0 00 0,0 0* *1 10 0,1 1* *0 00 0,1 1* *1 11 1 相當(dāng)于:相當(dāng)于: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ù)的運(yùn)算中需要位無符號數(shù)的運(yùn)算中需要n n* *(n-1n-1)個全加器虛線個全加器虛線圍起的是一個行波進(jìn)位加法器圍起的是一個行波進(jìn)位加法器豎線表示輸出豎線表示輸出斜線表示進(jìn)位輸出斜線表示進(jìn)位輸出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ù)的運(yùn)算數(shù)的運(yùn)算計(jì)算中,需要計(jì)算中,需要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帶符號的并行乘法器帶符號的并行乘法器 設(shè)設(shè)A=aA=an na an-1n-1aa1 1a a0 0和和B=bB=bn nb bn-1n-1bb1 1b b0 0均為用定點(diǎn)表示的均為用定點(diǎn)表示的(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進(jìn)行異或作為結(jié)果的符號位。進(jìn)行異或作為結(jié)果的符號位。 例例 設(shè)設(shè)(+15)(+15)1010, ,(-13)(-13)1010, ,用原碼陣列乘法器求出乘積用原碼陣列乘法器求出乘積?解:輸入數(shù)據(jù)為原
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)通訊設(shè)施建設(shè)承包合同
- 專利技術(shù)許可使用與轉(zhuǎn)讓協(xié)議
- 事業(yè)單位正式聘用勞動合同
- 環(huán)??萍佳邪l(fā)與推廣合作協(xié)議
- 企業(yè)向法人借款合同
- 三農(nóng)田土壤健康與改良方案
- 智慧農(nóng)業(yè)技術(shù)研發(fā)與應(yīng)用合作協(xié)議
- 公路護(hù)欄采購合同
- 動物養(yǎng)殖場地租賃合同
- 經(jīng)典工程勞務(wù)承包合同
- YY/T 1537-2017放射治療用激光定位系統(tǒng)性能和試驗(yàn)方法
- SB/T 10752-2012馬鈴薯雪花全粉
- 復(fù)變函數(shù)與積分變換全套課件
- 濕型砂中煤粉作用及檢測全解析
- 最新部編版語文五年級下冊教材分析及教學(xué)建議課件
- A4橫線稿紙模板(可直接打印)
- 環(huán)境材料學(xué)教學(xué)課件匯總完整版電子教案全書整套課件幻燈片(最新)
- JJF1175-2021試驗(yàn)篩校準(zhǔn)規(guī)范-(高清現(xiàn)行)
- 產(chǎn)品結(jié)構(gòu)設(shè)計(jì)概述課件
- 八年級下綜合實(shí)踐教案全套
- 第8課《山山水水》教學(xué)設(shè)計(jì)(新人教版小學(xué)美術(shù)六年級上冊)
評論
0/150
提交評論