浮點(diǎn)數(shù)計(jì)算方法_第1頁
浮點(diǎn)數(shù)計(jì)算方法_第2頁
浮點(diǎn)數(shù)計(jì)算方法_第3頁
浮點(diǎn)數(shù)計(jì)算方法_第4頁
浮點(diǎn)數(shù)計(jì)算方法_第5頁
已閱讀5頁,還剩159頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、關(guān)于浮點(diǎn)數(shù)計(jì)算方法第一張,PPT共一百六十四頁,創(chuàng)作于2022年6月2.1 數(shù)據(jù)與文字的表示方法 2.1.1 數(shù)據(jù)格式計(jì)算機(jī)中常用的數(shù)據(jù)表示格式有兩種: 1 定點(diǎn)格式 2 浮點(diǎn)格式 一般來說,定點(diǎn)格式容許的數(shù)值范圍有限,但要求的處理硬件比較簡單。而浮點(diǎn)格式容許的數(shù)值范圍很大,但要求的處理硬件比較復(fù)雜。第二張,PPT共一百六十四頁,創(chuàng)作于2022年6月1. 定點(diǎn)數(shù)的表示方法定點(diǎn)表示:約定機(jī)器中所有數(shù)據(jù)的小數(shù)點(diǎn)位置是固定不變的。由于約定在固定的位置,小數(shù)點(diǎn)就不再使用記號“.”來表示。通常將數(shù)據(jù)表示成純小數(shù)或純整數(shù)。 定點(diǎn)數(shù)012n 在定點(diǎn)機(jī)中表示如下(0:符號位,0代表正號,1代表負(fù)號):第三張,

2、PPT共一百六十四頁,創(chuàng)作于2022年6月純小數(shù)的表示范圍為(012n 各位均為0時(shí)最?。桓魑痪鶠?時(shí)最大) 0|12n (2.1) 純整數(shù)的表示范圍為0|2n1 (2.2)目前計(jì)算機(jī)中多采用定點(diǎn)純整數(shù)表示,因此將定點(diǎn)數(shù)表示的運(yùn)算簡稱為整數(shù)運(yùn)算。第四張,PPT共一百六十四頁,創(chuàng)作于2022年6月電子的質(zhì)量(91028克)和太陽的質(zhì)量(21033克)相差甚遠(yuǎn),在定點(diǎn)計(jì)算機(jī)中無法直接來表示這個(gè)數(shù)值范圍.要使它們送入定點(diǎn)計(jì)算機(jī)進(jìn)行某種運(yùn)算,必須對它們分別取不同的比例因子,使其數(shù)值部分絕對值小于1,即: 9 10280.9 1027 2 10330.2 1034 這里的比例因子1027 和 1034要

3、分別存放在機(jī)器的某個(gè)存儲(chǔ)單元中,以便以后對計(jì)算結(jié)果按這個(gè)比例增大。顯然這要占用一定的存儲(chǔ)空間和運(yùn)算時(shí)間。因此得到浮點(diǎn)表示法如下:2. 浮點(diǎn)數(shù)的表示方法第五張,PPT共一百六十四頁,創(chuàng)作于2022年6月浮點(diǎn)表示法:把一個(gè)數(shù)的有效數(shù)字和數(shù)的范圍在計(jì)算機(jī)的一個(gè)存儲(chǔ)單元中分別予以表示,這種把數(shù)的范圍和精度分別表示的方法,相當(dāng)于數(shù)的小數(shù)點(diǎn)位置隨比例因子的不同而在一定范圍內(nèi)自由浮動(dòng),稱為浮點(diǎn)表示法。 任意一個(gè)十進(jìn)制數(shù) 可以寫成 10E. (2.3)同樣在計(jì)算機(jī)中一個(gè)任意進(jìn)制數(shù) 可以寫成 e. (2.4) :尾數(shù),是一個(gè)純小數(shù)。 e :比例因子的指數(shù),稱為浮點(diǎn)數(shù)的指數(shù),是一個(gè)整數(shù)。 R :比例因子的基數(shù),對

4、于二進(jìn)計(jì)數(shù)值的機(jī)器是一個(gè)常數(shù),一般規(guī)定 為2,8或16。 第六張,PPT共一百六十四頁,創(chuàng)作于2022年6月一個(gè)機(jī)器浮點(diǎn)數(shù)由階碼和尾數(shù)及其符號位組成(尾數(shù):用定點(diǎn)小數(shù)表示,給出有效數(shù)字的位數(shù)決定了浮點(diǎn)數(shù)的表示精度;階碼:用整數(shù)形式表示,指明小數(shù)點(diǎn)在數(shù)據(jù)中的位置,決定了浮點(diǎn)數(shù)的表示范圍。): 第七張,PPT共一百六十四頁,創(chuàng)作于2022年6月32位浮點(diǎn)數(shù)的IEEE754標(biāo)準(zhǔn)格式為:64位浮點(diǎn)數(shù)的IEEE754標(biāo)準(zhǔn)格式為:第八張,PPT共一百六十四頁,創(chuàng)作于2022年6月在IEEE754標(biāo)準(zhǔn)格式表示的32位浮點(diǎn)數(shù)中, :浮點(diǎn)數(shù)的符號位,1 位, 0表示正數(shù),1表示負(fù)數(shù)。 :尾數(shù),23位,用小數(shù)表示

5、, 小數(shù)點(diǎn)放在尾數(shù)域的最前面。 :階碼,8 位階符采用隱含方式, 即采用移碼方式來表示正負(fù)指數(shù)。 移碼方法對兩個(gè)指數(shù)大小的比較和對階操作都比較方便,因?yàn)殡A碼域值大者其指數(shù)值也大。采用這種方式時(shí),將浮點(diǎn)數(shù)的指數(shù)真值e 變成階碼 時(shí),應(yīng)將指數(shù) e 加上一個(gè)固定的偏移值127(01111111),即 e127. 第九張,PPT共一百六十四頁,創(chuàng)作于2022年6月 IEEE754 標(biāo)準(zhǔn)中,一個(gè)規(guī)格化的32位浮點(diǎn)數(shù)的真值可表示為 (1)s(1.)2127 e127 一個(gè)規(guī)格化的64位浮點(diǎn)數(shù)的真值為 (1)s(1.)21023 e1023 為提高數(shù)據(jù)的表示精度,當(dāng)尾數(shù)的值不為 0 時(shí),尾數(shù)域的最高有效位應(yīng)

6、為1,否則以修改階碼同時(shí)左右移小數(shù)點(diǎn)的辦法,使其變成這一表示形式,這稱為浮點(diǎn)數(shù)的規(guī)格化表示。 當(dāng)浮點(diǎn)數(shù)的尾數(shù)為 0,不論其階碼為何值,或者當(dāng)階碼的值遇到比它能表示的最小值還小時(shí),不管其尾數(shù)為何值,計(jì)算機(jī)都把該浮點(diǎn)數(shù)看成零值,稱為機(jī)器零。 第十張,PPT共一百六十四頁,創(chuàng)作于2022年6月 當(dāng)階碼E 為全0且尾數(shù)M 也為全0時(shí),表示的真值x 為零,結(jié)合符號位S 為0或1,有正零和負(fù)零之分。當(dāng)階碼E 為全1且尾數(shù)M 為全0時(shí),表示的真值x 為無窮大,結(jié)合符號位S 為0或1,也有+和-之分。這樣在32位浮點(diǎn)數(shù)表示中,要除去E 用全0和全1(255)10表示零和無窮大的特殊情況,指數(shù)的偏移值不選128

7、(10000000),而選127(01111111)。對于規(guī)格化浮點(diǎn)數(shù),E 的范圍變?yōu)?到254,真正的指數(shù)值e 則為-126到+127。因此32位浮點(diǎn)數(shù)表示的絕對值的范圍是10-381038(以10的冪表示)。第十一張,PPT共一百六十四頁,創(chuàng)作于2022年6月 浮點(diǎn)數(shù)所表示的范圍遠(yuǎn)比定點(diǎn)數(shù)大。一臺(tái)計(jì)算機(jī)中究竟采用定點(diǎn)表示還是浮點(diǎn)表示,要根據(jù)計(jì)算機(jī)的使用條件來確定。一般在高檔微機(jī)以上的計(jì)算機(jī)中同時(shí)采用定點(diǎn)、浮點(diǎn)表示,由使用者進(jìn)行選擇,而單片機(jī)中多采用定點(diǎn)表示。 例1 若浮點(diǎn)數(shù)的754標(biāo)準(zhǔn)存儲(chǔ)格式為 (41360000)16,求其浮點(diǎn)數(shù)的十進(jìn)制數(shù)值。例2 將(20.59375)10轉(zhuǎn)換成754

8、標(biāo)準(zhǔn)的32位浮點(diǎn) 數(shù)的二進(jìn)制存儲(chǔ)格式。 第十二張,PPT共一百六十四頁,創(chuàng)作于2022年6月例1 若浮點(diǎn)數(shù)的754標(biāo)準(zhǔn)存儲(chǔ)格式為 (41360000)16,求其浮點(diǎn)數(shù)的十進(jìn)制數(shù)值。解: 將十六進(jìn)制數(shù)展開后,可得二進(jìn)制數(shù)格式為 指數(shù)e階碼127100000100111111100000011=(3)10包括隱藏位1的尾數(shù) 1.M1.011 0110 0000 0000 0000 00001.011011 于是有 (1)s1.M2e (1.011011)231011.011(11.375)10 第十三張,PPT共一百六十四頁,創(chuàng)作于2022年6月例2 將(20.59375)10轉(zhuǎn)換成754標(biāo)準(zhǔn)的3

9、2位浮點(diǎn) 數(shù)的二進(jìn)制存儲(chǔ)格式。 解: 首先分別將整數(shù)和分?jǐn)?shù)部分轉(zhuǎn)換成二進(jìn)制數(shù): 20.5937510100.10011 然后移動(dòng)小數(shù)點(diǎn),使其在第1,2位之間 10100.100111.01001001124e4于是得到: S0, E4127131, M010010011最后得到32位浮點(diǎn)數(shù)的二進(jìn)制存儲(chǔ)格式為: 0100 0001 1010 0100 1100 0000 0000 0000(41A4C000)16 第十四張,PPT共一百六十四頁,創(chuàng)作于2022年6月3. 十進(jìn)制數(shù)串的表示方法 目前,大多數(shù)通用性較強(qiáng)的計(jì)算機(jī)都能直接處理十進(jìn)制形式表示的數(shù)據(jù)。十進(jìn)制數(shù)串在計(jì)算機(jī)內(nèi)主要有兩種表示形式:

10、 (1) 字符串形式:一個(gè)字節(jié)存放一個(gè)十進(jìn)制的數(shù)位或符號位。為了指明這樣一個(gè)數(shù),需要給出該數(shù)在主存中的起始地址和位數(shù)(串的長度)。 (2) 壓縮的十進(jìn)制數(shù)串形式:一個(gè)字節(jié)存放兩個(gè)十進(jìn)制的數(shù)位。它比前一種形式節(jié)省存儲(chǔ)空間,又便于直接完成十進(jìn)制數(shù)的算術(shù)運(yùn)算,是廣泛采用的較為理想的方法。第十五張,PPT共一百六十四頁,創(chuàng)作于2022年6月4. 自定義數(shù)據(jù)表示 在傳統(tǒng)的計(jì)算機(jī)體系結(jié)構(gòu)中,用指令本身來說明操作數(shù)據(jù)的類型。如定點(diǎn)加法表示操作數(shù)是純小數(shù)或純整數(shù);浮點(diǎn)加法表示操作數(shù)是浮點(diǎn)數(shù);十進(jìn)制加法表示操作數(shù)是BCD數(shù)。由于操作數(shù)據(jù)類型不同,要設(shè)三種不同的指令(操作碼)來加以區(qū)分。 自定義數(shù)據(jù)表示則用數(shù)據(jù)本

11、身來說明數(shù)據(jù)類型。表示形式有兩種,即標(biāo)志符數(shù)據(jù)表示和描述符數(shù)據(jù)表示。第十六張,PPT共一百六十四頁,創(chuàng)作于2022年6月描述符數(shù)據(jù)表示主要用來描述多維結(jié)構(gòu)的數(shù)據(jù)類型,如向量、矩陣、記錄等。描述符標(biāo)志位部分指明這是一個(gè)數(shù)據(jù)描述符;特征標(biāo)記部分指明數(shù)據(jù)的各種特征;長度部分指明數(shù)組中元素個(gè)數(shù);起始地址部分指明數(shù)據(jù)塊的首地址。其格式為:標(biāo)志符數(shù)據(jù)表示要求對每一個(gè)數(shù)據(jù)都附加標(biāo)志符。其指明后面的數(shù)據(jù)所具有的類型,如整數(shù)、浮點(diǎn)數(shù)、BCD數(shù)、字符串等,其格式如下: 標(biāo)識符 數(shù)據(jù)描述符標(biāo)志位特征標(biāo)記數(shù)據(jù)塊長度數(shù)據(jù)塊起始地址第十七張,PPT共一百六十四頁,創(chuàng)作于2022年6月2.1.2 數(shù)的機(jī)器碼表示 在計(jì)算機(jī)中

12、對數(shù)據(jù)進(jìn)行運(yùn)算操作時(shí),為了妥善的處理好符號位問題,就產(chǎn)生了把符號位和數(shù)字位一起編碼來表示相應(yīng)的數(shù)的各種表示方法,如原碼、補(bǔ)碼、反碼、移碼等。為了區(qū)別一般書寫表示的數(shù)和機(jī)器中這些編碼表示的數(shù),通常將前者稱為真值,后者稱為機(jī)器數(shù)或機(jī)器碼。 常用的機(jī)器碼表示法: 1. 原碼表示法 2. 補(bǔ)碼表示法 3. 反碼表示法 4. 移碼表示法第十八張,PPT共一百六十四頁,創(chuàng)作于2022年6月1. 原碼表示法 若定點(diǎn)小數(shù)的原碼形式為0 .12n ,則原碼表示的定義是: 10 原 11| 01 式中原是機(jī)器數(shù),是真值 若定點(diǎn)整數(shù)的原碼形式為0 12n ,則原碼表示的定義是 2n0 原 2n2n| 02n第十九張

13、,PPT共一百六十四頁,創(chuàng)作于2022年6月 對于0,原碼機(jī)器中往往有“+0”、“-0”之分,故有兩種形式: +0原 = 0.000.0 -0原 = 1.000.0 采用原碼表示法簡單易懂,但它的最大缺點(diǎn)是加法運(yùn)算復(fù)雜。這是因?yàn)?,?dāng)兩數(shù)相加時(shí),如果是同號則數(shù)值相加;如果是異號,則要進(jìn)行減法。而在進(jìn)行減法時(shí)還要比較絕對值的大小,然后大數(shù)減去小數(shù),最后還要給結(jié)果選擇符號。為了解決這些矛盾,人們找到了補(bǔ)碼表示法。 第二十張,PPT共一百六十四頁,創(chuàng)作于2022年6月2. 補(bǔ)碼表示法 我們先以鐘表對時(shí)為例說明補(bǔ)碼的概念。假設(shè)現(xiàn)在的標(biāo)準(zhǔn)時(shí)間為4點(diǎn)正; 而有一只表已經(jīng)7點(diǎn)了,為了校準(zhǔn)時(shí)間,可以采用兩種方法

14、:一是將時(shí)針退 7-4=3 格;一是將時(shí)針向前撥12-3=9格。這兩種方法都能對準(zhǔn)到4點(diǎn),由此可以看出,減3和加9是等價(jià)的,就是說9是(-3)對12的補(bǔ)碼,可以用數(shù)學(xué)公式表示: -3+9 (mod12)mod12的意思就是12模數(shù),這個(gè)“?!北硎颈粊G掉的數(shù)值。上式在數(shù)學(xué)上稱為同余式。第二十一張,PPT共一百六十四頁,創(chuàng)作于2022年6月上例中其所以7-3和7+9(mod12)等價(jià),原因就是表指針超過12時(shí),將12自動(dòng)丟掉,最后得到16-12=4。從這里可以得到一個(gè)啟示,就是負(fù)數(shù)用補(bǔ)碼表示時(shí),可以把減法轉(zhuǎn)化為加法。這樣,在計(jì)算機(jī)中實(shí)現(xiàn)起來就比較方便。 7 3 = 4 7 + 9 = 4 以12取

15、模數(shù)(mod12) -3 = +9 (mod12) 采用補(bǔ)碼表示法進(jìn)行減法運(yùn)算就比原碼方便得多了。因?yàn)椴徽摂?shù)是正還是負(fù),機(jī)器總是做加法,減法運(yùn)算可變?yōu)榧臃ㄟ\(yùn)算。關(guān)鍵是我們需要換算出兩個(gè)操作數(shù)的補(bǔ)碼表示。第二十二張,PPT共一百六十四頁,創(chuàng)作于2022年6月 若定點(diǎn)小數(shù)補(bǔ)碼形式為0 .12n ,則補(bǔ)碼表示的定義是: 10 補(bǔ) 22| 01 (mod 2) 若定點(diǎn)整數(shù)補(bǔ)碼形式為0 12n ,則補(bǔ)碼表示的定義是: 2n0 補(bǔ) 2n+1+2n+1| 02n (mod 2n1) 根據(jù)補(bǔ)碼定義,求負(fù)數(shù)的補(bǔ)碼要從2減去|x|。為了用加法代替減法,結(jié)果還得在求補(bǔ)碼時(shí)作一次減法,這顯然是不方便的。下面介紹的反碼

16、表示法可以解決負(fù)數(shù)的求補(bǔ)問題。第二十三張,PPT共一百六十四頁,創(chuàng)作于2022年6月3. 反碼表示法 所謂反碼,就是二進(jìn)制的各位數(shù)碼0變?yōu)?,1變?yōu)?。也就是說,若Xi=1,則反碼為xi=0;若xi=0,則反碼xi=1。數(shù)值上面的一橫表示反碼的意思。在計(jì)算機(jī)中用觸發(fā)器寄存數(shù)碼,若觸發(fā)器Q端輸出表示原碼,則其Q端輸出就是反碼。由此可知,反碼是容易得到的。第二十四張,PPT共一百六十四頁,創(chuàng)作于2022年6月 若定點(diǎn)小數(shù)反碼形式為0 .12n ,則反碼表示的定義是: 10 反 (22-n) 01一般情況下,對正數(shù)和負(fù)數(shù)的值,0.12n,則反0.12n0.12n,則反1.12n 若定點(diǎn)整數(shù)反碼形式為

17、0 12n ,則反碼表示的定義是: 2n0 反 (2n+11) 02n第二十五張,PPT共一百六十四頁,創(chuàng)作于2022年6月我們比較反碼與補(bǔ)碼的公式,對于負(fù)數(shù)有: 定點(diǎn)小數(shù) 反(22n) 補(bǔ)2 可得到 補(bǔ)反2n 定點(diǎn)整數(shù) 反 (2n+11) 補(bǔ) 2n+1+ 可得到 補(bǔ)反1 這就是通過反碼求補(bǔ)碼的重要公式。這個(gè)公式告訴我們,若要一個(gè)負(fù)數(shù)變補(bǔ)碼,其方法是符號位置1,其余各位0變1,1變0,然后在最末位(2-n)上加1。第二十六張,PPT共一百六十四頁,創(chuàng)作于2022年6月4. 移碼表示法移碼通常用于表示浮點(diǎn)數(shù)的階碼。由于階碼是個(gè)n位的整數(shù),假定定點(diǎn)整數(shù)移碼形式為 012n時(shí),對定點(diǎn)整數(shù)移碼的傳統(tǒng)定

18、義是: 移2n 2n2n 若階碼數(shù)值部分為5位,以表示真值,則: 移25 25 25 第二十七張,PPT共一百六十四頁,創(chuàng)作于2022年6月小結(jié):上面的數(shù)據(jù)四種機(jī)器表示法中,移碼表示法主要用于表示浮點(diǎn)數(shù)的階碼。由于補(bǔ)碼表示對加減法運(yùn)算十分方便,因此目前機(jī)器中廣泛采用補(bǔ)碼表示法。在這類機(jī)器中,數(shù)用補(bǔ)碼表示,補(bǔ)碼存儲(chǔ),補(bǔ)碼運(yùn)算。也有些機(jī)器,數(shù)用原碼進(jìn)行存儲(chǔ)和傳送,運(yùn)算時(shí)改用補(bǔ)碼。還有些機(jī)器在做加減法時(shí)用補(bǔ)碼運(yùn)算,在做乘除法時(shí)用原碼運(yùn)算。 第二十八張,PPT共一百六十四頁,創(chuàng)作于2022年6月例5設(shè)機(jī)器字長16位,定點(diǎn)表示,尾數(shù)15位,數(shù)符1位,問: (1)定點(diǎn)原碼整數(shù)表示時(shí),最大正數(shù)是多少?最小負(fù)

19、數(shù)是多少? (2)定點(diǎn)原碼小數(shù)表示時(shí),最大正數(shù)是多少?最小負(fù)數(shù)是多少?; 解: (1)定點(diǎn)原碼整數(shù)表示 最大正數(shù)值(2151)10(32767)10 最小負(fù)數(shù)值(2151)10(32767)10 (2)定點(diǎn)原碼小數(shù)表示 最大正數(shù)值(1215)10(0.111.11)2 最小負(fù)數(shù)值(1215)10(0.111.11)2 0 111 111 111 111 1111 111 111 111 111 111第二十九張,PPT共一百六十四頁,創(chuàng)作于2022年6月例6假設(shè)由S,E,M三個(gè)域組成的一個(gè)32位二進(jìn)制數(shù)所表示的非零規(guī)格化浮點(diǎn)數(shù),真值表示為: (1)s(1.M)2E128問:它所表示的規(guī)格化的最

20、大正數(shù)、最小正數(shù)、最大負(fù)數(shù)、最小負(fù)數(shù)是多少? 解: (1)最大正數(shù) 1(12-23)2127 (2)最小正數(shù) 1.02128 (3)最小負(fù)數(shù) 1(1223)2127 (4)最大負(fù)數(shù) 1.02128 011 111 111111 111 111 111 111 111 111 11000 000 000000 000 000 000 000 000 000 00111 111 111111 111 111 111 111 111 111 11100 000 000000 000 000 000 000 000 000 00第三十張,PPT共一百六十四頁,創(chuàng)作于2022年6月例7 若機(jī)器使用8位表

21、示定點(diǎn)數(shù),將數(shù) x100/100,y0.59375/0.59375分別轉(zhuǎn)換為各種機(jī)器碼形式。 解:已知數(shù)據(jù)位數(shù)為8位,最高位為符號位,數(shù)據(jù)表示范圍可用7位,那么定點(diǎn)整數(shù)的范圍是: 0|127 ( 271)定點(diǎn)小數(shù)的范圍是: 0|0.9921875 (127 ) (100)10 = (1100100)2 (0.59375)10 = (0.10011)2+1100100原 = 01100100 -1100100原 = 11100100 +1100100反 = 01100100 -1100100反 = 10011011+1100100補(bǔ) = 01100100 -1100100補(bǔ) = 10011100

22、+ 0.10011原 = 01001100 - 0.10011原 = 11001100+ 0.10011反 = 01001100 - 0.10011反 = 10110011+ 0.10011補(bǔ) = 01001100 - 0.10011補(bǔ) = 10110100第三十一張,PPT共一百六十四頁,創(chuàng)作于2022年6月2.1.3 字符與字符串的表示方法1. 字符的表示方法現(xiàn)代計(jì)算機(jī)不僅處理數(shù)值領(lǐng)域的問題,而且處理大量非數(shù)值領(lǐng)域的問題。這樣一來,必然要引入文字、字母以及某些專用符號,以便表示文字語言、邏輯語言等信息。目前國際上普遍采用的字符系統(tǒng)是七單位的ASCII碼(美國國家信息交換標(biāo)準(zhǔn)字符碼),它包括

23、10個(gè)十進(jìn)制數(shù)碼,26個(gè)英文字母和一定數(shù)量的專用符號,如$, %, , 等,共128個(gè)元素,因此二進(jìn)制編碼需7位,加一位偶校驗(yàn)位,共8位一個(gè)字節(jié)。參見書中表2.1的ASCII碼字符編碼表。 第三十二張,PPT共一百六十四頁,創(chuàng)作于2022年6月2. 字符串 字符串是指連續(xù)的一串字符,通常方式下,它們占用主存中連續(xù)的多個(gè)字節(jié),每個(gè)字節(jié)存一個(gè)字符。當(dāng)主存字由2個(gè)或4個(gè)字節(jié)組成時(shí),在同一個(gè)主存字中,既可按從低位字節(jié)向高位字節(jié)的順序存放字符串的內(nèi)容,也可按從高位字節(jié)向低位字節(jié)的次序順序存放字符串的內(nèi)容。例 將下面字符串從高位字節(jié)到低位字節(jié)依次存在主存中。 IFABTHENREAD(C)第三十三張,PP

24、T共一百六十四頁,創(chuàng)作于2022年6月2.1.4 漢字的表示方法1. 漢字的輸入編碼 當(dāng)前采用的方法主要有以下三類: 數(shù)字編碼 常用的是國標(biāo)區(qū)位碼,用數(shù)字串代表一個(gè)漢字輸入。區(qū)位碼是將國家標(biāo)準(zhǔn)局公布的6763個(gè)兩級漢字分為94個(gè)區(qū),每個(gè)區(qū)分94位,實(shí)際上把漢字表示成二維數(shù)組,每個(gè)漢字在數(shù)組中的下標(biāo)就是區(qū)位碼。區(qū)碼和位碼各兩位十進(jìn)制數(shù)字,因此輸入一個(gè)漢字需按鍵四次。數(shù)字編碼輸入的優(yōu)點(diǎn)是無重碼,且輸入碼與內(nèi)部編碼的轉(zhuǎn)換比較方便,缺點(diǎn)是代碼難以記憶。 拼音碼 拼音碼是以漢字拼音為基礎(chǔ)的輸入方法。使用簡單方便,但漢字同音字太多,輸入重碼率很高,同音字選擇影響了輸入速度。 字形編碼 字形編碼是用漢字的形

25、狀來進(jìn)行的編碼。把漢字的筆劃部件用字母或數(shù)字進(jìn)行編碼,按筆劃的順序依次輸入,就能表示一個(gè)漢字。第三十四張,PPT共一百六十四頁,創(chuàng)作于2022年6月2.漢字內(nèi)碼漢字內(nèi)碼是用于漢字信息的存儲(chǔ)、交換、檢索等操作的機(jī)內(nèi)代碼,一般采用兩個(gè)字節(jié)表示。英文字符的機(jī)內(nèi)代碼是七位的ASCII碼,當(dāng)用一個(gè)字節(jié)表示時(shí),最高位為“0”。為了與英文字符能相互區(qū)別,漢字機(jī)內(nèi)代碼中兩個(gè)字節(jié)的最高位均規(guī)定為“1”。注意:有些系統(tǒng)中字節(jié)的最高位用于奇偶校驗(yàn)位,這種情況下用三個(gè)字節(jié)表示漢字內(nèi)碼。 第三十五張,PPT共一百六十四頁,創(chuàng)作于2022年6月3. 漢字字模碼字模碼是用點(diǎn)陣表示的漢字字形代碼,它是漢字的輸出形式。字模點(diǎn)陣

26、只能用來構(gòu)成漢字庫,用于漢字的顯示輸出或打印輸出。 注意,漢字的輸入編碼、漢字內(nèi)碼、字模碼是計(jì)算機(jī)中用于輸入、內(nèi)部處理、輸出三種不同 用途的編碼,不要混為一談。 圖2.1漢字的字模點(diǎn)陣及編碼 第三十六張,PPT共一百六十四頁,創(chuàng)作于2022年6月2.1.5 校驗(yàn)碼 元件故障/噪聲干擾等各種因素常導(dǎo)致計(jì)算機(jī)在處理信息過程中出現(xiàn)錯(cuò)誤。為了防止錯(cuò)誤 可將信號采用專門的邏輯線路進(jìn)行編碼以檢測錯(cuò)誤,甚至校正錯(cuò)誤。通常的方法是在每個(gè)字上添加一些校驗(yàn)位,用來確定字中出現(xiàn)錯(cuò)誤的位置。最簡單且應(yīng)用廣泛的檢錯(cuò)碼是采用一位校驗(yàn)位的奇校驗(yàn)或偶校驗(yàn)。 設(shè)(01n-1)是一個(gè)n位字, 則奇校驗(yàn)位定義為 C01n-1 同理

27、偶校驗(yàn)位定義為 C01n-1第三十七張,PPT共一百六十四頁,創(chuàng)作于2022年6月2.2 定點(diǎn)加法、減法運(yùn)算2.2.1 補(bǔ)碼加法 負(fù)數(shù)用補(bǔ)碼表示后,可以和正數(shù)一樣來處理。這樣,運(yùn)算器里只需要一個(gè)加法器就可以了,不必為了負(fù)數(shù)的加法運(yùn)算,再配一個(gè)減法器。補(bǔ)碼加法的公式是 補(bǔ)補(bǔ)補(bǔ) (mod 2) 現(xiàn)分四種情況來證明。假設(shè)采用定點(diǎn)小數(shù)表示,因此證明的先決條件是 1, 1, 1。第三十八張,PPT共一百六十四頁,創(chuàng)作于2022年6月(1)0,0,則0。 相加兩數(shù)都是正數(shù),故其和也一定是正數(shù)。正數(shù)的補(bǔ)碼和原碼是一樣的,可得: 補(bǔ)補(bǔ)補(bǔ) (mod 2) (2)0,0,則0或0時(shí),2 () 2,進(jìn)位2必丟失,又

28、因()0,故補(bǔ)補(bǔ)補(bǔ) (mod 2)當(dāng)0時(shí),2 () 2,又因()0,故補(bǔ)補(bǔ)2()補(bǔ) (mod 2)第三十九張,PPT共一百六十四頁,創(chuàng)作于2022年6月(3)0,則0或 0。這種情況等同于第2種情況。 (4)0,0,則0。 相加兩數(shù)都是負(fù)數(shù),則其和也一定是負(fù)數(shù)。補(bǔ)2,補(bǔ)2補(bǔ)補(bǔ)222(2)上式右邊分為”2”和(2)兩部分.既然()是負(fù)數(shù),而其絕對值又小于1,那么(2)就一定是小于2而大于1的數(shù),進(jìn)位”2”必丟失.又因()0, 所以補(bǔ)補(bǔ)2()補(bǔ)(mod 2)至此我們證明了,在模2意義下,任意兩數(shù)的補(bǔ)碼之和等于該兩數(shù)之和的補(bǔ)碼.這是補(bǔ)碼加法的理論基礎(chǔ),其結(jié)論也適用于定點(diǎn)整數(shù)。第四十張,PPT共一百六

29、十四頁,創(chuàng)作于2022年6月例8 0.1001,0.0101, 用補(bǔ)碼求解: 補(bǔ)0.1001, 補(bǔ)0.0101 補(bǔ)0.1001 補(bǔ)0.0101 補(bǔ)0.1110 所以0.1110 第四十一張,PPT共一百六十四頁,創(chuàng)作于2022年6月例90.1011,0.0101, 用補(bǔ)碼求。解: 補(bǔ)0.1011,補(bǔ)1.1011 補(bǔ)0.1011 補(bǔ)1.1011 補(bǔ) 10.0110 所以0.0110 由以上兩例看到,補(bǔ)碼加法的特點(diǎn),一是符號位要作為數(shù)的一部分一起參加運(yùn)算,二是要在模2的意義下相加,即超過2的進(jìn)位要丟掉。 第四十二張,PPT共一百六十四頁,創(chuàng)作于2022年6月2.2.2 補(bǔ)碼減法 負(fù)數(shù)的減法運(yùn)算也要

30、設(shè)法化為加法來做,其所以使用這種方法而不使用直接減法,是因?yàn)樗梢院统R?guī)的加法運(yùn)算使用同一加法器電路,從而簡化了計(jì)算機(jī)的設(shè)計(jì)。數(shù)用補(bǔ)碼表示時(shí),減法運(yùn)算的公式為 補(bǔ)補(bǔ)補(bǔ)補(bǔ)-補(bǔ) 只要證明補(bǔ)補(bǔ),上式即得證。第四十三張,PPT共一百六十四頁,創(chuàng)作于2022年6月現(xiàn)證明如下:補(bǔ)補(bǔ)補(bǔ) (mod 2)補(bǔ)補(bǔ)補(bǔ) (2.19a)補(bǔ)()補(bǔ)補(bǔ)補(bǔ)補(bǔ) 補(bǔ)補(bǔ) (2.19a)將式(2.19a)與(2.19b)相加,得補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ) 補(bǔ)補(bǔ)補(bǔ) 補(bǔ)補(bǔ)補(bǔ)0故 補(bǔ)補(bǔ) (mod 2) 第四十四張,PPT共一百六十四頁,創(chuàng)作于2022年6月從補(bǔ)求補(bǔ)的法則是:對補(bǔ)包括符號位“求反且最末位加1”,即可得到補(bǔ)。寫成運(yùn)算表達(dá)式,則為補(bǔ)補(bǔ)2n(2.2

31、1) 其中符號表示對補(bǔ)作包括符號位在內(nèi)的求反操作,2n表示最末位的1第四十五張,PPT共一百六十四頁,創(chuàng)作于2022年6月例10 已知10.1110,20.1101, 求:1補(bǔ),1補(bǔ),2補(bǔ),2補(bǔ)。解:1補(bǔ) 1.0010 1補(bǔ) 1補(bǔ)2-4 0.11010.00010.11102補(bǔ) 0.11012補(bǔ) 2補(bǔ)2-4 1.00100.00011.0011第四十六張,PPT共一百六十四頁,創(chuàng)作于2022年6月例11 0.1101,0.0110,求。解:補(bǔ)0.1101補(bǔ)0.0110 補(bǔ)1.1010 補(bǔ) 0.1101 補(bǔ) 1.1010 補(bǔ) 10.0111 所以0.0111第四十七張,PPT共一百六十四頁,創(chuàng)作

32、于2022年6月2.2.3 溢出概念與檢測方法在定點(diǎn)小數(shù)機(jī)器中,數(shù)的表示范圍為|1. 在運(yùn)算過程中如出現(xiàn)大于1的現(xiàn)象,稱為“溢出”。在定點(diǎn)機(jī)中,正常情況下溢出是不允許的。 兩個(gè)正數(shù)相加,結(jié)果大于機(jī)器所能表示的最大正數(shù),稱為上溢。而兩個(gè)負(fù)數(shù)相加,結(jié)果小于機(jī)器所能表示的最小負(fù)數(shù),稱為下溢。機(jī)器定點(diǎn)小數(shù)表示第四十八張,PPT共一百六十四頁,創(chuàng)作于2022年6月例12 0.1011,0.1001,求。解:補(bǔ)0.1011 補(bǔ)0.1001 補(bǔ)0.1011 補(bǔ)0.1001 補(bǔ)1.0100 兩個(gè)正數(shù)相加的結(jié)果成為負(fù)數(shù),這顯然是錯(cuò)誤的。例13 0.1101,0.1011,求。解:補(bǔ)1.0011 補(bǔ)1.0101

33、補(bǔ) 1.0011 補(bǔ)1.0101 補(bǔ)0.1000兩個(gè)負(fù)數(shù)相加的結(jié)果成為正數(shù),這同樣是錯(cuò)誤的。第四十九張,PPT共一百六十四頁,創(chuàng)作于2022年6月 為了判斷“溢出”是否發(fā)生,可采用兩種檢測的方法。第一種方法是采用雙符號位法,這稱為“變形補(bǔ)碼”或“模4補(bǔ)碼”,從而可使模2補(bǔ)碼所能表示的數(shù)的范圍擴(kuò)大一倍。 第二種溢出檢測方法是采用單符號位法。從上例中看到,當(dāng)最高有效位產(chǎn)生進(jìn)位而符號位無進(jìn)位時(shí),產(chǎn)生上溢;當(dāng)最高有效位無進(jìn)位而符號位有進(jìn)位時(shí),產(chǎn)生下溢。 在定點(diǎn)機(jī)中當(dāng)運(yùn)算結(jié)果發(fā)生溢出時(shí),機(jī)器通過邏輯電路自動(dòng)檢查出溢出,并進(jìn)行中斷處理。第五十張,PPT共一百六十四頁,創(chuàng)作于2022年6月2.2.4 基本的

34、二進(jìn)制加法/減法器 首先我們來討論最簡單的一位全加器的結(jié)構(gòu),設(shè)定兩個(gè)二進(jìn)制數(shù)字Ai,Bi和一個(gè)進(jìn)位輸入Ci 相加,產(chǎn)生一個(gè)和輸出Si ,以及一個(gè)進(jìn)位輸出Ci1。 Ai Bi Ci Ci1 Si 下表列出一位全加器進(jìn)行加法運(yùn)算的輸入輸出真值表。第五十一張,PPT共一百六十四頁,創(chuàng)作于2022年6月 輸入 輸出Ai Bi CiSi Ci10000000110010100110110010101011100111111表2.2 一位全加器真值表第五十二張,PPT共一百六十四頁,創(chuàng)作于2022年6月 根據(jù)表2.2所示的真值表,三個(gè)輸入端和兩個(gè)輸入端可按如下邏輯方程進(jìn)行聯(lián)系: Si AiBiCi Ci1

35、 AiBiBiCiCiAi 按此表達(dá)式組成的一位全加器下圖示2.2(a)。第五十三張,PPT共一百六十四頁,創(chuàng)作于2022年6月第五十四張,PPT共一百六十四頁,創(chuàng)作于2022年6月 由上圖看到,n個(gè)1位的全加器(FA)可級聯(lián)成一個(gè)n位的行波進(jìn)位加減器。M為方式控制輸入線,當(dāng)M0時(shí),作加法(AB)運(yùn)算;當(dāng)M1時(shí),作減法(AB)運(yùn)算,在后一種情況下,AB運(yùn)算轉(zhuǎn)化成A補(bǔ)B補(bǔ)運(yùn)算,求補(bǔ)過程由B1來實(shí)現(xiàn)。因此圖中最右邊的全加器的起始進(jìn)位輸入端被連接到功能方式線M上,作減法時(shí)M1,相當(dāng)于在加法器的最低位上加1。另外圖中左邊還表示出單符號位法的溢出檢測邏輯;當(dāng)CnCn1時(shí),運(yùn)算無溢出;而當(dāng)CnCn1時(shí),運(yùn)

36、算有溢出,經(jīng)異或門產(chǎn)生溢出信號。第五十五張,PPT共一百六十四頁,創(chuàng)作于2022年6月 對一位全加器(FA)來說,Si的時(shí)間延遲為6T(每級異或門延遲3T),Ci1的時(shí)間延遲為5T,其中T被定義為相應(yīng)于單級邏輯電路的單位門延遲。T通常采用一個(gè)“與非”門或一個(gè)“或非”門的時(shí)間延遲來作為度量單位。 現(xiàn)在我們計(jì)算一個(gè)n位的行波進(jìn)位加法器的時(shí)間延遲。假如采用圖2.2(a)所示的一位全加器并考慮溢出檢測,那么n位行波進(jìn)位加法器的延遲時(shí)間ta為 tan2T9T(2n9)T9T為最低位上的兩極“異或”門再加上溢出“異或”門的總時(shí)間,2T為每級進(jìn)位鏈的延遲時(shí)間。第五十六張,PPT共一百六十四頁,創(chuàng)作于2022

37、年6月 當(dāng)不考慮溢出檢測時(shí),有 ta(n-1)2T9Tta意味著加法器的輸入端輸入加數(shù)和被加數(shù)后,在最壞情況下加法器輸出端得到穩(wěn)定的求和輸出所需的最長時(shí)間。顯然這個(gè)時(shí)間越小越好。注意,加數(shù)、被加數(shù)、進(jìn)位與和數(shù)都是用電平來表示的,因此,所謂穩(wěn)定的求和輸出,就是指穩(wěn)定的電平輸出。 注意:第一種情況下,是最低的兩個(gè)異或門加上溢出的異或門共3*3T;第二種情況下,是最低的兩個(gè)異或門加上最后一個(gè)FA的輸出異或門共3*3T。第五十七張,PPT共一百六十四頁,創(chuàng)作于2022年6月2.2.5 十進(jìn)制加法器 十進(jìn)制加法器可由BCD碼(二十進(jìn)制碼)來設(shè)計(jì),它可以在二進(jìn)制加法器的基礎(chǔ)上加上適當(dāng)?shù)?校正 邏輯來實(shí)現(xiàn),

38、該校正邏輯可將二進(jìn)制的 和 改變成所要求的十進(jìn)制格式。 n位BCD碼行波式進(jìn)位加法器的一般結(jié)構(gòu)如下圖2.3(a)所示,它由n級組成,每一級將一對4位的BCD數(shù)字相加,并通過一位進(jìn)位線與其相鄰級連接。而每一位十進(jìn)制數(shù)字的BCD加法器單元的邏輯結(jié)構(gòu)示于圖2.3(b)。 第五十八張,PPT共一百六十四頁,創(chuàng)作于2022年6月第五十九張,PPT共一百六十四頁,創(chuàng)作于2022年6月 在十進(jìn)制運(yùn)算時(shí),當(dāng)相加二數(shù)之和大于9時(shí),便產(chǎn)生進(jìn)位??墒怯肂CD碼完成十進(jìn)制數(shù)運(yùn)算時(shí),當(dāng)和數(shù)大于9時(shí),必須對和數(shù)進(jìn)行加6修正。這是因?yàn)?,采用BCD碼后,在二數(shù)相加的和數(shù)小于等于9時(shí),十進(jìn)制運(yùn)算的結(jié)果是正確的;而當(dāng)相加的和數(shù)大

39、于9時(shí),結(jié)果不正確,必須加6修正后才能得出正確的結(jié)果。第六十張,PPT共一百六十四頁,創(chuàng)作于2022年6月2.3 定點(diǎn)乘法運(yùn)算 2.3.1 原碼乘法 1. 人工算法與機(jī)器算法的同異性 設(shè)0.1101, 0.1011. 下面讓我們先用習(xí)慣方法求其乘積,其過程如下: 第六十一張,PPT共一百六十四頁,創(chuàng)作于2022年6月 上述的運(yùn)算過程與十進(jìn)制乘法相似:從乘數(shù)的最低位開始,若這一位為“1”,則將被乘數(shù)寫下;若這一位為“0”,則寫下全0。然后在對乘數(shù)的次高位進(jìn)行乘法運(yùn)算,其規(guī)則同上,不過這一位乘數(shù)的權(quán)與最低位乘數(shù)的權(quán)不一樣,因此被乘數(shù)要左移一位。以此類推直到乘數(shù)個(gè)位乘完為止,最后將它們統(tǒng)統(tǒng)加起來便得

40、到最后乘積。同理,如果被乘數(shù)和乘數(shù)用定點(diǎn)整數(shù)表示,我們也會(huì)得到同樣的結(jié)果。 數(shù)值部分的運(yùn)算方法與普通的十進(jìn)制小數(shù)乘法類似,不過對于用二進(jìn)制表達(dá)式的數(shù)來說,其乘法規(guī)則更為簡單一些。第六十二張,PPT共一百六十四頁,創(chuàng)作于2022年6月 在定點(diǎn)計(jì)算機(jī)中,兩個(gè)原碼表示的數(shù)相乘的運(yùn)算規(guī)則是: 乘積的符號位由兩數(shù)的符號位按異或運(yùn)算得到,而乘積的數(shù)值部分則是兩個(gè)正數(shù)相乘之積。 設(shè)n位被乘數(shù)和乘數(shù)用定點(diǎn)小數(shù)表示 被乘數(shù) 原f .n110 乘數(shù) 原f .n110則兩數(shù)的乘積 原(ff) (0.n110)(0.n110) 式中,f為被乘數(shù)符號,f為乘數(shù)符號。 第六十三張,PPT共一百六十四頁,創(chuàng)作于2022年6

41、月 人們習(xí)慣的算法對機(jī)器并不完全適用。原因之一,機(jī)器通常只有n位長,兩個(gè)n位數(shù)相乘,乘積可能為2n位。原因之二,只有兩個(gè)操作數(shù)相加的加法器難以勝任將n各位積一次相加起來的運(yùn)算。早期計(jì)算機(jī)中為了簡化硬件結(jié)構(gòu),采用串行的1位乘法方案,即多次執(zhí)行“加法移位”操作來實(shí)現(xiàn)。這種方法并不需要很多器件。然而串行方法畢竟太慢,自從大規(guī)模集成電路問世以來,出現(xiàn)了各種形式的流水式陣列乘法器,它們屬于并行乘法器。第六十四張,PPT共一百六十四頁,創(chuàng)作于2022年6月2. 不帶符號的陣列乘法器設(shè)有兩個(gè)不帶符號的二進(jìn)制整數(shù): Aam1a1a0 Bbn1b1b0 它們的數(shù)值分別為a和b,即 m1n1 a ai2i b b

42、j2j i0 j0 在二進(jìn)制乘法中,被乘數(shù)A與乘數(shù)B相乘,產(chǎn)生mn位乘積P: Ppmn1p1p0乘積P 的數(shù)值為第六十五張,PPT共一百六十四頁,創(chuàng)作于2022年6月 實(shí)現(xiàn)這個(gè)乘法過程所需要的操作和人們的習(xí)慣方法非常類似:第六十六張,PPT共一百六十四頁,創(chuàng)作于2022年6月 上述過程說明了在m位乘n位不帶符號整數(shù)的陣列乘法中“加法移位”操作的被加數(shù)矩陣。每一個(gè)部分乘積項(xiàng)(位積)aibj叫做一個(gè)被加數(shù)。這 mn 個(gè)被加數(shù) aibj| 0im1 和 0jn1 可以用mn個(gè)“與”門并行地產(chǎn)生。由此說明設(shè)計(jì)高速并行乘法器的基本問題,就在于縮短被加數(shù)矩陣中每列所包含的1的加法時(shí)間。 下圖是一個(gè)55 (

43、 mn)不帶符號的陣列乘法器的邏輯電路圖:第六十七張,PPT共一百六十四頁,創(chuàng)作于2022年6月第六十八張,PPT共一百六十四頁,創(chuàng)作于2022年6月第六十九張,PPT共一百六十四頁,創(chuàng)作于2022年6月 這種乘法器要實(shí)現(xiàn)n位n位時(shí),需要n(n1)個(gè)全加器和n2個(gè)“與”門。該乘法器的總的乘法時(shí)間可以估算如下:令Ta為“與門”的傳輸延遲時(shí)間,Tf為全加器(FA)的進(jìn)位傳輸延遲時(shí)間,假定用2級“與非”邏輯來實(shí)現(xiàn)FA的進(jìn)位鏈功能,那么我們就有: Ta Tf 2T從上圖可知,最壞情況下延遲途徑,即是沿著矩陣最右邊的對角線和最下面的一行。因而得n位n位不帶符號的陣列乘法器總的乘法時(shí)間為: tmTa(n1

44、)6T( n1)Tf 2T(n1)6T(n1)2T (8n6)T第七十張,PPT共一百六十四頁,創(chuàng)作于2022年6月例16 已知兩個(gè)不帶符號的二進(jìn)制整數(shù)A 11011,B 10101,求每一部分乘積項(xiàng)aibj的值與p9p8p0的值。解:Pp9p8p7p6p5p4p3p2p1p01000110111 (56710)a4b01 a3b01 a2b00 a1b01 a0b01a4b10 a3b10 a2b10 a1b10 a0b10a4b21 a3b21 a2b20 a1b21 a0b20a4b30 a3b30 a2b30 a1b30 a0b30a4b41 a3b41 a2b40 a1b41 a0b

45、41第七十一張,PPT共一百六十四頁,創(chuàng)作于2022年6月3. 帶符號的陣列乘法器(1) 對2求補(bǔ)器電路我們先來看看算術(shù)運(yùn)算部件設(shè)計(jì)中經(jīng)常用到的求補(bǔ)電路。下圖示出一個(gè)具有使能控制的二進(jìn)制對2求補(bǔ)器電路,其邏輯表達(dá)式如下: C10, CiaiCi1 ai*aiECi1,0in第七十二張,PPT共一百六十四頁,創(chuàng)作于2022年6月第七十三張,PPT共一百六十四頁,創(chuàng)作于2022年6月 在對2求補(bǔ)時(shí),要采用按位掃描技術(shù)來執(zhí)行所需要的求補(bǔ)操作。令A(yù)ana1a0是給定的(n1)為帶符號的數(shù),要求確定它的補(bǔ)碼形式。進(jìn)行求補(bǔ)的方法就是從數(shù)的最右端a0開始,由右向左,直到找出第一個(gè)“1”,例如 ai1,0in

46、。這樣,ai以左的每一個(gè)輸入位都求反,即1變0,0變1。最右端的起始鏈?zhǔn)捷斎隒1必須永遠(yuǎn)置成“0”。當(dāng)控制信號線E為“1”時(shí),啟動(dòng)對2求補(bǔ)的操作。當(dāng)控制信號線E為“0”時(shí),輸出將和輸入相等。顯然,我們可以利用符號位來作為控制信號。第七十四張,PPT共一百六十四頁,創(chuàng)作于2022年6月例如,在一個(gè)4位的對2求補(bǔ)器中,如果輸入數(shù)為1010,那么輸出數(shù)應(yīng)是0110,其中從右算起的第2位,就是所遇到的第一個(gè)“1”的位置。 用這種對2求補(bǔ)器來轉(zhuǎn)換一個(gè)(n1)位帶符號的數(shù),所需的總時(shí)間延遲為 tTCn2T5T(2n5)T 其中每個(gè)掃描級需2T延遲,而5T則是由于“與”門和“異或”門引起的。第七十五張,PP

47、T共一百六十四頁,創(chuàng)作于2022年6月(2) 帶符號的陣列乘法器下圖是(n1)(n1)位帶求補(bǔ)器的陣列乘法器邏輯方框圖。通常,把包括這些求補(bǔ)級的乘法器又稱為符號求補(bǔ)的陣列乘法器。在這種邏輯結(jié)構(gòu)中,共使用三個(gè)求補(bǔ)器。其中兩個(gè)算前求補(bǔ)器的作用是:將兩個(gè)操作數(shù)A和B在被不帶符號的乘法陣列(核心部件)相乘以前,先變成正整數(shù)。而算后求補(bǔ)器的作用則是:當(dāng)兩個(gè)輸入操作數(shù)的符號不一致時(shí),把運(yùn)算結(jié)果變成帶符號的數(shù)。第七十六張,PPT共一百六十四頁,創(chuàng)作于2022年6月第七十七張,PPT共一百六十四頁,創(chuàng)作于2022年6月 上面所示的帶求補(bǔ)級的陣列乘法器既適用于原碼乘法,也適用于間接的補(bǔ)碼乘法。不過在原碼乘法中,

48、算前求補(bǔ)和算后求補(bǔ)都不需要,因?yàn)檩斎霐?shù)據(jù)都是立即可用的。而間接的補(bǔ)碼陣列乘法卻需要增加三個(gè)硬件求補(bǔ)器。為了完成所必需的求與乘法操作,時(shí)間大約比原碼陣列乘法增加1倍。 實(shí)際上我們可以看到帶符號的陣列乘法器其內(nèi)部仍是一個(gè)基本的源碼陣列乘法器,只是對輸入的補(bǔ)碼數(shù)據(jù)在乘前進(jìn)行了值還原,同時(shí)在乘后再次將乘積數(shù)轉(zhuǎn)換為補(bǔ)碼形式輸出。 第七十八張,PPT共一百六十四頁,創(chuàng)作于2022年6月例17 設(shè)15,13,用帶求補(bǔ)器的原碼陣列乘法器求出乘積?解: 設(shè)最高位為符號位,則輸入數(shù)據(jù)為 補(bǔ) 01111 補(bǔ) 10011 符號位單獨(dú)考慮,經(jīng)過算前求補(bǔ)級后 |1111, |1101第七十九張,PPT共一百六十四頁,創(chuàng)作

49、于2022年6月算后經(jīng)求補(bǔ)級輸出并加上乘積符號位1, 乘積的補(bǔ)碼值為 100111101。 則原碼乘積值為 111000011。 換算成二進(jìn)制數(shù)真值是 ( 11000011)2=(-195)10 十進(jìn)制數(shù)驗(yàn)證: 15 (13) 195相等。第八十張,PPT共一百六十四頁,創(chuàng)作于2022年6月2.3.2 補(bǔ)碼乘法1. 補(bǔ)碼與真值的轉(zhuǎn)換公式 補(bǔ)碼乘法因符號位參與運(yùn)算,可以完成補(bǔ)碼數(shù)的“直接”乘法,而不需要求補(bǔ)級。這種直接的方法排除了較慢的對2求補(bǔ)操作,因而大大加速了乘法過程。首先說明與直接的補(bǔ)碼乘法相聯(lián)系數(shù)學(xué)特征。對于計(jì)算補(bǔ)碼數(shù)的數(shù)值來說,一種較好的表示方法是使補(bǔ)碼的位置數(shù)由一個(gè)帶負(fù)權(quán)的符號和帶正

50、權(quán)的系數(shù)。今考慮一個(gè)定點(diǎn)補(bǔ)碼整數(shù)N補(bǔ)an1an2a1a0,這里an1是符號位。根據(jù)N補(bǔ)的符號,補(bǔ)碼數(shù)N補(bǔ)和真值N的關(guān)系可以表示成: 第八十一張,PPT共一百六十四頁,創(chuàng)作于2022年6月 n2 ai2i 當(dāng)an1 0 (N補(bǔ)為正) N i0 n2 1(1ai)2i 當(dāng)an1 1 (N補(bǔ)為負(fù)) i0 如果我們把負(fù)權(quán)因數(shù)2n1強(qiáng)加到符號位an1上,那么就可以把上述方程組中的兩個(gè)位置表達(dá)式合并成下面的統(tǒng)一形式: n2 N an12n1ai2i i=0 n2 N (1an1)2n1(1ai)2i +1 i0 第八十二張,PPT共一百六十四頁,創(chuàng)作于2022年6月2. 一般化的全加器形式常規(guī)的一位全加器

51、可假定它的3個(gè)輸入和2個(gè)輸出都是正權(quán)。這種加法器通過把正權(quán)或負(fù)權(quán)加到輸入/輸出端,可以歸納出四類加法單元。如下表,0類全加器沒有負(fù)權(quán)輸入;1類全加器有1個(gè)負(fù)權(quán)輸入和2個(gè)正權(quán)輸入;依次類推。對0類、3類全加器而言有:對1類、2類全加器,則有第八十三張,PPT共一百六十四頁,創(chuàng)作于2022年6月表2.3 四類一般化全加器的名稱和邏輯符號第八十四張,PPT共一百六十四頁,創(chuàng)作于2022年6月 注意,0類和3類全加器是用同一對邏輯方程來表征的,它和普通的一位全加器(0類)是一致的。這是因?yàn)?類全加器可以簡單地把0類全加器的所有輸入輸出值全部反向來得到,反之亦然。1類和2類全加器之間也能建立類似的關(guān)系。

52、由于邏輯表達(dá)式具有兩級與-或形式,可以用“與或非”門來實(shí)現(xiàn),延遲時(shí)間為2T。第八十五張,PPT共一百六十四頁,創(chuàng)作于2022年6月3. 直接補(bǔ)碼陣列乘法器 利用混合型的全加器就可以構(gòu)成直接補(bǔ)碼數(shù)陣列乘法器。設(shè)被乘數(shù)A和乘數(shù)B是兩個(gè)5位的二進(jìn)制補(bǔ)碼數(shù),即 A(a4)a3a2a1a0 B(b4)a3a2a1a0它們具有帶負(fù)權(quán)的符號位a4和b4,并用括號標(biāo)注。如果我們用括號來標(biāo)注負(fù)的被加項(xiàng),例如(aibJ),那么A和B相乘過程中所包含的操作步驟如下面矩陣所示:第八十六張,PPT共一百六十四頁,創(chuàng)作于2022年6月 A (a4) a3 a2 a1 a0 B (b4) b3 b2 b1 b0 (a4b0

53、)a3b0a1b0a1b0a0b0 (a4b1) a3b1 a2b1a1b1a0b1 (a4b2) a3b2 a2b2 a1b2a0b2 (a4b3)a3b3 a2b3 a1b3 a0b3) a4b4 (a3b4) (a2b4) (a1b4) (a0b4) P p9 p8 p7 p6 p5 p4 p3 p2 p1 p0第八十七張,PPT共一百六十四頁,創(chuàng)作于2022年6月第八十八張,PPT共一百六十四頁,創(chuàng)作于2022年6月 上圖所示是5位乘5位的直接補(bǔ)碼陣列乘法器邏輯原理,其中使用不同的邏輯符號來代表0類、1類、2類、3類全加器。2類和1類全加器具有同樣的結(jié)構(gòu),但是使用不同的邏輯符號可使乘法

54、陣列的線路圖容易理解。該實(shí)現(xiàn)方式稱為三段陣列乘法器,其中右上角的三角形中只用0類全加器,左上角的三角形只用1類全加器,陣列的最后兩行只用2類全加器。第八十九張,PPT共一百六十四頁,創(chuàng)作于2022年6月第九十張,PPT共一百六十四頁,創(chuàng)作于2022年6月其中使用不同的邏輯符號來代表0類、1類、2類、3類全加器。2類和1類全加器具有同樣的結(jié)構(gòu),但是使用不同的邏輯符號可使乘法陣列的線路圖容易理解。在n位乘n位的一般情況下,該乘法器需要(n2)2個(gè)0類全加器,(n2)個(gè)1類全加器,(2n3)個(gè)2類全加器,1個(gè)3類全加器,總共是n(n1)個(gè)全加器。 故所需的總乘法時(shí)間是: tp=Ta+2(n-1)Tf

55、=2T+(2n-2)2T=(4n-2)T (2.31)第九十一張,PPT共一百六十四頁,創(chuàng)作于2022年6月例20 設(shè)A補(bǔ)(01101)2, B補(bǔ)(11011)2, 求AB補(bǔ)?解: (0) 1 1 0 1 13 ) (1) 1 0 1 1 5 (0) 1 1 0 1 (0) 1 1 0 1 (0) 0 0 0 0 (0) 1 1 0 1 0 (1) (1) (0) (1) 0 (1) 0 1 1 1 1 1 1 (1) 1 0 1 1 1 1 1 1 65 擴(kuò)展符號位 符號位驗(yàn)證: 127026125124123122121120 128(32168421) 65(13)(5)65第九十二張,

56、PPT共一百六十四頁,創(chuàng)作于2022年6月2.4 定點(diǎn)除法運(yùn)算2.4.1 原碼除法運(yùn)算原理 兩個(gè)原碼表示的數(shù)相除時(shí),商的符號由兩數(shù)的符號按位相加求得,商的數(shù)值部分由兩數(shù)的數(shù)值部分相除求得。設(shè)有n位定點(diǎn)小數(shù)(定點(diǎn)整數(shù)也同樣適用):被除數(shù), 其原碼為 原f .n110除數(shù), 其原碼為 原f .n110 則有商q/,其原碼為q原(ff)+(0.n110/0.n110)第九十三張,PPT共一百六十四頁,創(chuàng)作于2022年6月 商的符號運(yùn)算qfff與原碼乘法一樣,用模2求和得到。商的數(shù)值部分的運(yùn)算,實(shí)質(zhì)上是兩個(gè)正數(shù)求商的運(yùn)算。根據(jù)我們所熟知的十進(jìn)制除法運(yùn)算方法,很容易得到二進(jìn)制數(shù)的除法運(yùn)算方法,所不同的只

57、是在二進(jìn)制中,商的每一位不是“1”就是“0”,其運(yùn)算法則更簡單一些。下面僅討論數(shù)值部分的運(yùn)算。設(shè)被除數(shù)0.1001,除數(shù)0.1011,模仿十進(jìn)制除法運(yùn)算,以手算方法求的過程如下:第九十四張,PPT共一百六十四頁,創(chuàng)作于2022年6月得的商q0.1101,余數(shù)為r0.00000001。第九十五張,PPT共一百六十四頁,創(chuàng)作于2022年6月上面的筆算過程可敘述如下: 1. 判斷是否小于?現(xiàn)在21, 表示夠減, 小數(shù) 點(diǎn)后第一位商“1”, 作r021, 得余數(shù)r1。 3. 比較r1和22, 因r122, 表示夠減, 小 數(shù)點(diǎn)后第二位商“1”, 作r122, 得余數(shù)r2。 4. 比較r2和23, 因r

58、224, 表示夠減, 小數(shù) 點(diǎn)后第四2位商“1”, 作r324, 得余數(shù)r4, 共求四位商, 至此除法完畢。 第九十六張,PPT共一百六十四頁,創(chuàng)作于2022年6月在計(jì)算機(jī)中小數(shù)點(diǎn)是固定的,不能簡單地采用手算的辦法。為便于機(jī)器操作,使“除數(shù)右移”和“右移上商”的操作統(tǒng)一起來。事實(shí)上機(jī)器與人運(yùn)算過程不同,人會(huì)心算一看就知道夠不夠減。但機(jī)器卻必須先作減法,若余數(shù)為正才知道夠減;若余數(shù)為負(fù)才知道不夠減。不夠減時(shí)必須恢復(fù)原來的余數(shù)以便再繼續(xù)往下運(yùn)算。這種方法稱為恢復(fù)余數(shù)法。要恢復(fù)原來的余數(shù),只要當(dāng)前的余數(shù)加上除數(shù)即可。但由于要恢復(fù)余數(shù),使除法進(jìn)行過程的步數(shù)不固定,因此控制比較復(fù)雜。實(shí)際中常用不恢復(fù)余數(shù)

59、法又稱加減交替法。其特點(diǎn)是運(yùn)算過程中如出現(xiàn)不夠減則不必恢復(fù)余數(shù),根據(jù)余數(shù)符號,可以繼續(xù)往下運(yùn)算,因此步數(shù)固定,控制簡單。早期計(jì)算機(jī)中,為了簡化結(jié)構(gòu),硬件除法器的設(shè)計(jì)采用串行的1位除法方案。即多次執(zhí)行“減法移位”操作來實(shí)現(xiàn),并使用計(jì)數(shù)器來控制移位次數(shù)。由于串行除法器速度太慢,目前已被淘汰。第九十七張,PPT共一百六十四頁,創(chuàng)作于2022年6月不恢復(fù)余數(shù)除法即加減交替法的實(shí)現(xiàn)方式:設(shè)被除數(shù)為: 除數(shù)為: 1. x y補(bǔ) = x 補(bǔ) + -y補(bǔ) 若:x y 0 則商數(shù)為1,并進(jìn)行第二步減, 即: x y補(bǔ) ( 21 y) 若:x y 0 則商數(shù)為0,還原減法操作,在進(jìn)行第二步減, 即: x ( 21

60、 y) 補(bǔ) x 補(bǔ) + - ( 21 y) 補(bǔ) 上面過程也就是: x y y ( 21 y) 補(bǔ) x y 補(bǔ) y ( 21 y) 補(bǔ) x y 補(bǔ) ( 21 y) 補(bǔ) 步驟2同理,從而用加減交替法實(shí)現(xiàn)除法操作。第九十八張,PPT共一百六十四頁,創(chuàng)作于2022年6月2.4.2 并行除法器1. 可控加法/減法(CAS)單元 和陣列乘法器非常相似,陣列式除法器也是一種并行運(yùn)算部件,采用大規(guī)模集成電路制造。與早期的串行除法器相比,陣列除法器不僅所需的控制線路少,而且能提供令人滿意的高速運(yùn)算速度。陣列除法器有多種多樣形式,如不恢復(fù)余數(shù)陣列除法器,補(bǔ)碼陣列除法器等等。 先介紹可控加法/減法(CAS)單元,它

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論