組成原理第2章-運算方法及運算器_第1頁
組成原理第2章-運算方法及運算器_第2頁
組成原理第2章-運算方法及運算器_第3頁
組成原理第2章-運算方法及運算器_第4頁
組成原理第2章-運算方法及運算器_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章數(shù)據(jù)表示和運算方法本章學習要點數(shù)據(jù)在機內(nèi)的表示定點數(shù)加減乘除運算方法及運算器浮點數(shù)加減乘除運算方法及運算器序:編碼與碼制二進制八進制十六進制BCD碼ASCII十進制二進制數(shù)便于計算機存儲及物理實現(xiàn)特點:逢二進一,由0和1兩個數(shù)碼組成,基數(shù)為2,各個位權(quán)以2k表示二進制數(shù):

anan-1…a1a0.b1b2…bm=

an×2n+an-1×2n-1+…+a1×21+a0×20

+b1×2-1+b2×2-2+…+bm×2-m

其中ai,bj非0即1八進制數(shù)用于表達二進制數(shù),相互轉(zhuǎn)換簡單基數(shù)8,逢8進位,位權(quán)為8k,8個數(shù)碼:0,1,2,3,4,5,6,7,8十六進制數(shù)用于表達二進制數(shù),相互轉(zhuǎn)換簡單基數(shù)16,逢16進位,位權(quán)為16k,16個數(shù)碼:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(xiàn)十六進制數(shù):

anan-1…a1a0.b1b2…bm=

an×16n+an-1×16n-1+…+a1×161+a0×160 +b1×16-1+b2×16-2+…+bm×16-m

其中ai,bj是0~F中的一個數(shù)碼BCD碼(BinaryCodedDecimal)二進制編碼的十進制數(shù)一個十進制數(shù)位用4位二進制編碼來表示常用8421BCD碼:低10個4位二進制編碼表示0~9壓縮BCD碼:一個字節(jié)表達兩位BCD碼非壓縮BCD碼:一個字節(jié)表達一位BCD碼(低4位表達數(shù)值,高4位常設置為0)BCD碼便于輸入輸出,表達數(shù)值準確BCD碼(BinaryCodedDecimal)BCD碼很直觀BCD碼:0100100101111000.000101001001十進制真值: 4978.149ASCII碼(美國標準信息交換碼)

標準ASCII碼用7位二進制編碼,有128個不可顯示的控制字符:前32個和最后一個編碼回車CR:0DH換行LF:0AH響鈴BEL:07H可顯示和打印的字符:20H后的94個編碼數(shù)碼0~9:30H~39H大寫字母A~Z:41H~5AH小寫字母a~z:61H~7AH空格:20H擴展ASCII碼:最高D7位為1,表達制表符號表2.1ASCII字符編碼表000000010010001101000101011001110000NULDELSP0@P`p0001SOHDC1!1AQaq0010STXDC2"2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB'7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,<L\1|1101CRGS-=M]m}1110SORS.>N^n~1111SIUS/?O_oDEL0-3位4-7位漢字的輸入編碼數(shù)字編碼國標區(qū)位碼,用數(shù)字串代表一個漢字輸入

拼音碼以漢字拼音為基礎的輸入方法字形編碼用漢字的形狀(筆劃)來進行的編碼例如五筆字形漢字交換碼漢字交換碼是不同的漢字處理系統(tǒng)之間交換信息用的編碼漢字也是一種字符1981年我國制定了《信息交換用漢字編碼字符集基本集GB2312-80》國家標準(簡稱國標碼)。每個漢字的二進制編碼用兩個字節(jié)表示。漢字內(nèi)碼漢字內(nèi)碼是用于漢字信息的存儲、檢索等操作的機內(nèi)代碼,一般采用兩個字節(jié)表示漢字內(nèi)碼有多種方案,常以國標碼為基礎的編碼例如,將國標碼兩字節(jié)的最高位置1后形成漢字“啊”的國標碼

3021H(0011000000100001)對應的漢字內(nèi)碼

B0A1H(1011000010100001)漢字的表示方法漢字的輸入編碼、交換碼、漢字內(nèi)碼、字模碼是計算機中用于輸入、內(nèi)部處理、交換、輸出四種不同用途的編碼,不要混為一談.

顯示輸出打印輸出機內(nèi)碼向字形碼轉(zhuǎn)換機內(nèi)碼輸入碼向機內(nèi)碼轉(zhuǎn)換字符代碼化(輸入)校驗碼校驗碼:能夠發(fā)現(xiàn)甚至糾正信息傳輸或存儲過程中出現(xiàn)錯誤的編碼檢錯碼:僅能檢測出錯誤的編碼糾錯碼:能夠發(fā)現(xiàn)并糾正錯誤的編碼最簡單且應用廣泛的檢錯碼:奇偶校驗碼奇校驗:使包括校驗位在內(nèi)的數(shù)據(jù)中為“1”的個數(shù)恒為奇數(shù)偶校驗:使包括校驗位在內(nèi)的數(shù)據(jù)中為“1”的個數(shù)恒為偶數(shù)(包括0)只能檢測出奇數(shù)個位出錯的情況,不能糾錯例7:用奇校驗和偶校驗進行編碼數(shù)據(jù)1010101001010100000000000111111111111111偶校驗碼101010100010101001000000000011111111111111110奇校驗碼101010101010101000000000001011111110111111111存在的意義八進制與十六進制數(shù)統(tǒng)稱為組合二進制數(shù),目的是為了書寫方便,在計算機內(nèi)的本質(zhì)是相同的例如255海明碼2.1數(shù)值數(shù)據(jù)在機內(nèi)的表示

選擇計算機內(nèi)數(shù)值數(shù)據(jù)的表示方式需要考慮以下幾個因素:

(1)符號如何處理

(2)數(shù)碼的處理

(3)小數(shù)點的處理

(4)數(shù)據(jù)存儲和處理所需要的硬件代價數(shù)值精確度可能遇到的數(shù)值范圍要表示的數(shù)的類型(小數(shù)、整數(shù)、實數(shù))2.1.1真值和機器數(shù)真值:現(xiàn)實中真實的數(shù)值機器數(shù):計算機中用0和1數(shù)碼組合表達的數(shù)值定點數(shù):固定小數(shù)點的位置表達數(shù)值的機器數(shù)定點整數(shù):將小數(shù)點固定在機器數(shù)的最右側(cè)表達的整數(shù)定點小數(shù):將小數(shù)點固定在機器數(shù)的最左側(cè)表達的小數(shù)浮點數(shù):小數(shù)點浮動表達的實數(shù)有符號數(shù)的表示符號占一位或兩位,其它位為數(shù)值位+8:01000-8:11000定點表示法定點表示:約定機器中所有數(shù)據(jù)的小數(shù)點位置是固定不變的。通常將數(shù)據(jù)表示成純小數(shù)或純整數(shù)定點數(shù)x=x0x1x2…xn在定點機中表示如下(x0表示符號位,0代表正號,1代表負號)定點表示法定點小數(shù)的小數(shù)點位置定點整數(shù)的小數(shù)點位置定點數(shù)例例:X=+1010110.純整數(shù):X=01010110.正數(shù),符號位取0Y=-1101001.純整數(shù):Y=11101001.(原碼)負數(shù),符號位取1X=+0.11011Y=-0.10101符號位取0純小數(shù):X=0.11011符號位取1純小數(shù):X=1.10101(原碼)定點整數(shù)的表示范圍純整數(shù)的表示范圍為(x1x2…xn各位均為0時最??;各位均為1時最大,x0為符號位)

0≤|x|≤2n

-1例如:n=8,最大值編碼:11111111

表示:11111111=100000000-1

=28-1目前計算機中多采用定點純整數(shù)表示,因此將定點數(shù)表示的運算簡稱為整數(shù)運算定點小數(shù)的表示范圍純小數(shù)的表示范圍為(x1x2…xn各位均為0時最小;各位均為1時最大,x0為符號位)

0≤|x|≤1-2-n例如,n=8,最大值編碼:0.11111111

表示:0.11111111=1.0-0.00000001

=1-2-8浮點表示法小數(shù)點位置隨階碼不同而浮動1、格式:N=JE.M指數(shù)E基數(shù)J,取固定的值,比如10,2等尾數(shù)M2、機器中表示

階符階碼數(shù)符尾數(shù)浮點表示法3、IEEE754標準(規(guī)定了浮點數(shù)的表示格式,運算規(guī)則等)規(guī)則規(guī)定了單精度(32)和雙精度(64)的基本格式.規(guī)則中,尾數(shù)用原碼,指數(shù)用移碼(便于對階和比較)32位單精度浮點數(shù)E:含階符的階碼,8位階碼采用移碼方式來表示正負指數(shù)S:1位符號位0表示正數(shù)1表示負數(shù)M:尾數(shù),23位小數(shù)表示,小數(shù)點放在尾數(shù)域最前面IEEE754標準例:156.78 =15.678×101 =

1.5678×102 =0.15678×103=RE×M對于二進制數(shù)1011.1101 =0.10111101×2+4 =10.111101×2+2 =1.0111101×2+3(規(guī)格化表示法)

=1.0111101×2+11(規(guī)格化表示法)

=RE×M那么,計算機中究竟采用哪種數(shù)據(jù)形式?多種數(shù)據(jù)形式二進制數(shù)尾數(shù)最高有效位為1,隱藏,并且隱藏在小數(shù)點的左邊(即:1≤M<2)32位單精度浮點數(shù)規(guī)格化表示

x=(-1)s×(1.M)×2E-127

e=E-127(E=e+127)

指數(shù)真值e用偏移碼形式表示為階碼E規(guī)格化表示原則IEEE754標準④X=(-1)s×1.M×2e

=+(1.011011)×23

=+1011.011=(11.375)10②指數(shù)e=階碼-127=10000010-01111111

=00000011=(3)10③包括隱藏位1的尾數(shù)1.M=1.011011例1:浮點機器數(shù)(41360000)16,求真值①十六進制數(shù)展開成二進制數(shù)01000001001101100000000000000000S階碼E(8位)尾數(shù)M(23位)例2:真值20.59375,求32位單精度浮點數(shù)①分別將整數(shù)和分數(shù)部分轉(zhuǎn)換成二進制數(shù)

20.59375=10100.10011②移動小數(shù)點,使其在第1、2位之間10100.10011=1.010010011×24e=4S=0E=4+127=131=10000011M=010010011③得到32位浮點數(shù)的二進制存儲格式為:0

1000001101001001100000000000000=(41A4C000)162.1.2數(shù)的機器碼表示真值:一般書寫的數(shù)機器碼:機器中表示的數(shù),要解決在計算機內(nèi)部數(shù)的正、負符號和小數(shù)點運算問題原碼反碼補碼移碼原碼表示法原碼特點:表示簡單,易于同真值之間進行轉(zhuǎn)換,實現(xiàn)乘除運算規(guī)則簡單進行加減運算十分麻煩補碼表示法定義:正數(shù)的補碼就是正數(shù)的本身,負數(shù)的補碼是原負數(shù)加上模計算機運算受字長限制,屬于有模運算定點小數(shù)x0.x1x2…..xn,以2為模定點整數(shù)x0x1x2…..xn,以2n+1為模定點小數(shù)x0.x1x2…xn

x1>x≥00,正數(shù)

[x]補=符號

2+x0≥x>-11,負數(shù)補碼表示法補碼性質(zhì)高位表明正負正數(shù)補碼,尾數(shù)與原碼相同范圍-2n~2n-1(定點整數(shù))變相補碼(雙符號補碼)為了防止溢出而設定補碼表示法

最大的優(yōu)點就是將減法運算轉(zhuǎn)換成加法運算

[X]補-[Y]補=[X]補+[-Y]補例如X=(11)10=(1011)2Y=(5)10=(0101)2已知字長n=5位[X]補-[Y]補

=[X]補+[-Y]補=01011+11011=100110=00110=(6)10

注:最高1位已經(jīng)超過字長故應丟掉無正零和負零之分反碼表示法定義:正數(shù)的表示與原、補碼相同,負數(shù)的補碼符號位為1,數(shù)值位是將原碼的數(shù)值按位取反,就得到該數(shù)的反碼表示。電路容易實現(xiàn),觸發(fā)器的輸出有正負之分。移碼表示法移碼的定義是:

[x]移=2n+x

例:-1011111

原碼為11011111補碼為10100001反碼為10100000移碼為00100001特點:移碼和補碼尾數(shù)相同,符號位相反范圍:-2n~2n-12.3加減運算方法

補碼加法運算補碼減法運算溢出概念及檢測方法基本的二進制加法/減法器十進制加法器2.3.1補碼加法運算公式:[x]補+[y]補=[x+y]補(mod2)【例2-1】x=0.1010,y=0.0101,求

[x]補

+[y]補

=

?解:[x]補=0.1010,[y]補=0.0101[x]補

0.1010+[y]補

0.0101[x+y]補

0.1111

所以x+y=0.11113)X=3Y=–21)X=3Y=22)X=–3Y=–24)X=–3Y=2例.求(X+Y)補3)X=3Y=–200001(+1補碼)1)X=3Y=2X補=00011Y補=111102)X=–3Y=–2X補=11101Y補=1111011011(–5補碼)X補=00011Y補=0001000101(+5補碼)4)X=–3Y=2X補=11101Y補=0001011111(–1補碼)例.求(X+Y)補

2.3.2補碼減法運算

(X-Y)補

=X補

+(-Y)補操作碼為“減”時,將減轉(zhuǎn)換為加。1)X=4Y=–5X補=00100Y補=11011(-Y)補=0010101001(+9補碼)2)X=–4Y=5X補=11100Y補=00101(-Y)補=1101110111(–9補碼)例.求(X–Y)補Y補(–Y)補:將Y補變補不管Y補為正或負,將其符號連同尾數(shù)一起各位變反,末位加1。即將減數(shù)變補后與被減數(shù)相加。X補=00100Y補=11011X補=11100Y補=00101例1:求64–10,用補碼做例2:求34–68,用補碼做

例1:求64–10,用補碼做解:設z=64–10=64+(-10)

[+64]補=01000000,[-10]原=10001010[-10]補=11110110,或[[10]補]補=[00001010]補=11110110[z]補=[64-10]補=[+64]補+[-10]補=01000000+11110110=00110110

結(jié)果為正數(shù),所以z=+54例2:求34–68

解:設z=34–68=34+(-68)

[+34]補=00100010,[-68]原=11000100[-68]補=10111100[z]補=[+34]補+[-68]補=00100010+10111100=11011110

結(jié)果為負數(shù),[z]原=10100010,z=-34注意:某數(shù)的補碼表示與某數(shù)變補的區(qū)別。例.10101原

11011補碼表示10011補

01101變補00101原

00101補碼表示符號位不變,負數(shù)尾數(shù)改變,正數(shù)尾數(shù)不變。00011補

11101變補符號位改,尾數(shù)改變。補碼的機器負數(shù)2.算法流程操作數(shù)用補碼表示,符號位參加運算結(jié)果為補碼表示,符號位指示結(jié)果正負X補+Y補X補+(-Y)補ADDSUB3.邏輯實現(xiàn)A(X補)B(Y補)+AABB+B+B+1CPA

∑A(1)控制信號加法器輸入端:+A:打開控制門,將A送∑。+B:打開控制門,將B送∑。+1:控制末位加1。+B:打開控制門,將B送∑。加法器輸出端:∑

A:打開控制門,將結(jié)果送A輸入端。CPA:將結(jié)果打入A。(2)補碼加減運算器粗框∑2.3.4溢出判斷在什么情況下可能產(chǎn)生溢出?例.數(shù)A有4位尾數(shù),1位符號SA

數(shù)B有4位尾數(shù),1位符號SB

符號位參加運算結(jié)果符號Sf符號位進位Cf尾數(shù)最高位進位C溢出概念及檢測方法

兩正數(shù)加,變負數(shù),上溢(大于機器所能表示的最大數(shù))兩負數(shù)加,變正數(shù),下溢(小于機器所能表示的最小數(shù))(2)A=10B=710+7:01010

0011110001(4)A=-10B=-7-10+(-7):0111110110110011.硬件判斷邏輯一(SA、SB與Sf的關系)溢出=SASBSfSASfSB2.硬件判斷邏輯二(Cf與C的關系)溢出=CfC3.硬件判斷邏輯三(雙符號位)溢出=Sf1Sf2(1)3+2:正確00001100001000

0101(2)10+7:001010000111010001正溢正確負溢正確正確(3)-3+(-2):110111111101111110(4)-10+(-7):101111110110111001(5)6+(-4):000010000110111100(6)-6+4:11

111011

1010000100第一符號位Sf1第二符號位Sf2[例]x=+0.1011,y=+0.1001,求x+y。[解:][x]補=0.1011,[y]補=0.1001[x]補0.1011+[y]補

0.1001[x+y]補1.0100兩正數(shù)相加,結(jié)果為負,顯然錯誤。--運算中出現(xiàn)了“上溢”有進位無進位[例]x=+0.1011,y=+0.1001,求x+y。[例]

x=+0.1011,y=+0.0010,求x+y。[例]

x=+0.1011,y=+0.0010,求x+y。[解:][x]補=0.1011,[y]補=0.0010[x]補0.1011+[y]補0.0010[x+y]補0.1101兩正數(shù)相加,結(jié)果無溢出無進位無進位[例]

x=-0.1101,y=-0.1011,求x+y。[例]

x=-0.1101,y=-0.1011,求x+y。[解:]

[x]補=1.0011[y]補=1.0101

[x]補1.0011

+[y]補1.0101[x+y]補0.1000兩負數(shù)相加,結(jié)果為正,顯然錯誤。--運算中出現(xiàn)了“下溢”無進位有進位2.3.4基本的二進制加法/減法器FA(全加器)邏輯電路圖FA框圖加法器的邏輯關系Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi2.3.4基本的二進制加法/減法器2.3.5十進制加法器

2.4乘法計算

原碼1位乘法補碼1位乘法陣列乘法器2.3.1原碼一位乘法(4/5)例題已知X=-0.1011,Y=0.1001,求[X×Y]原解:[X]原=1.1011,[Y]原=0.1001|X|=0.1011,|Y|=0.1001按原碼一位乘法運算規(guī)則,求[X×Y]原的數(shù)值部分。|X|×|Y|=0.01100011,而Zs=XsYs=10=1最后求得[X×Y]原

=1.01100011例題之原碼一位乘法運算過程

+)0.0000

+)0.0000

+)0.1011

+)0.10110.00010.01100.11000.00100.00100.01010.01010.10110.0000右移一位得部分積Z4,乘數(shù)同時右移一位右移一位得部分積Z3,乘數(shù)同時右移一位右移一位得部分積Z2,乘數(shù)同時右移一位右移一位得部分積Z1,乘數(shù)同時右移一位Y1=1,加|X|Y2=0,加0Y3=0,加0Y4=1,加|X|設部分積初值Z0=0操作說明乘數(shù)部分積10011100111001110011低位積高位積例原碼一位乘法運算過程2.4.1原碼1位乘法2.4.3

陣列乘法器不帶符號的陣列乘法器帶符號的陣列乘法器求補器帶符號的陣列乘法器2.5除法計算原碼1位除法補碼1位除法陣列除法器2.5.1原碼1位除法恢復余數(shù)法加減交替法2.4.1原碼一位除法-加減交替法例X=-0.1011,Y=0.1101,求[X/Y]原解:[X]原=1.1011,[Y]原=0.1101[Y]補=0.1101,[-Y]補=1.0011

商的符號Qs=10=1

所以[X/Y]原

=1.1101

余數(shù)=0.0111×2-4例題之原碼不恢復余數(shù)除法運算過程

+)11.0011

11.1110

00.1011+Y余數(shù)與商左移一位余數(shù)與商左移一位初始狀態(tài)+[-Y]補+[-|Y|]補余數(shù)為負,商“0”余數(shù)為正,商“1”操作說明商Q上商被除數(shù)(余數(shù))0.00000.00000.00010.00100.0000

+)00.1101

11.1100

+)11.0011

00.1001

01.00100.00110.0110

+)11.0011

00.0101

00.1010余數(shù)為正,商“1”

00.01110.11010.01100.1100

+)00.1101

11.1101

11.1010余數(shù)與商左移一位+[-|Y|]補余數(shù)為正,商“1”+Y余數(shù)與商左移一位余數(shù)為負,商“0”2.4.1原碼一位除法-恢復余數(shù)法例X=-0.1001,Y=-0.1011,求[X/Y]原解:[X]原

=1.1001,[Y]原

=1.1011|X|=0.1001,|Y|=0.1011,[-|Y|]補

=1.0101運算過程如下:所以,Qs=11=0[X/Y]原

=[Q]原

=0.1101[R]原

=2-4R5=0.00000001例題之原碼恢復余數(shù)除法運算過程+)00.1011+)11.0101

11.1110

00.1001R1恢復余數(shù),+|Y|R0=[X|+[-|Y|]補+[-|Y|]補+[-|Y|]補得R1<0,商上0得R2>0,商上1余數(shù)左移一位余數(shù)左移一位操作說明商Q上商(余數(shù))被除數(shù)0.00000.00000.00010.00100.0000

+)11.0101

00.1001

01.0010

+)11.0101

00.0111

00.11100.00110.0110

+)11.0101

00.0011

00.0110+[-|Y|]補得R3>0,商上1余數(shù)左移一位

+)00.1011

11.1011恢復余數(shù),+|Y|得R4<0,商上00.01100.1100

+)11.0101

00.0110

00.1100+[-|Y|]補R4余數(shù)左移一位

00.0001得R5>0,商上10.1101原碼加減交替法邏輯結(jié)構(gòu)框圖加數(shù)器YfCxQnTiQnT1,T2,…+1LDR1LDR0被除數(shù)X或者余數(shù)寄存器R0商Q寄存器R1除數(shù)Y寄存器∑f∑fR2R計數(shù)器iQfXfR0R1Qn+1SQ1.浮點加減法運算

(1/7) 設兩個浮點數(shù)x和y分別為:

x=Sx·2Exy=Sy·2Ey

其中,Ex、Ey分別是x和y的階碼,Sx和Sy是x、y的尾數(shù)。 假定它們都是規(guī)則化的數(shù),即其尾數(shù)絕對值總小于1(用補碼表示,允許為1),浮點加減運算的運算步驟如下:1.浮點加減法運算

(2/7)1.對階:小階向大階看齊對階的第一步是求階差:△E=Ex-Ey

若△E=0,表示兩數(shù)階碼相等,即Ex=Ey,不需要對階若△E>0,表明Ex>Ey

若△E<0,表明Ex<Ey

對于Ex≠Ey的這種情況,需要對階。采用“小階向大階看齊”的方法,即小階的尾數(shù)右移△E位,小階的階碼增加△E與大階相等。2.尾數(shù)求和(差) 對階完成后,就按定點加減運算求兩數(shù)的尾數(shù)之和。1.浮點加減法運算

(3/7)3.規(guī)格化 (1)對于定點小數(shù),其規(guī)格化數(shù)為:

00.1xx…x11.0xx…x (原碼表示法)(2)對于負數(shù)的補碼表示法,規(guī)格化定義有所不同:根據(jù)規(guī)格化浮點數(shù)的定義可知,規(guī)格化的尾數(shù)應滿足:

S>0時1/2≤S<1

對于S<0,用補碼表示時-1/2>S≥-1

理論上,S可等于-1/2,但[-1/2]補=11.100…0,為了便于判別是否是規(guī)格化數(shù),不把-1/2列為規(guī)格化數(shù),而把-1列入規(guī)格化數(shù)?!遊-1]補=11.00…0∴補碼規(guī)格化的浮點數(shù)應有兩種形式:

00.1xx…x11.0xx…x1.浮點加減法運算

(4/7)由此可知補碼規(guī)格化的條件是:(A)若和或差的尾數(shù)兩符號位相等且與尾數(shù)第一位相等,則需向左規(guī)格化。即將和或差的尾數(shù)左移,每移一位,和或差的階碼減一,直至尾數(shù)第一位與尾符不等時為止。(B)若和或差的尾數(shù)兩符號位不等,即01.xx…x或10.xx…x形式,表示尾數(shù)求和(差)結(jié)果絕對值大于1,向左破壞了規(guī)格化。此時應該將和(差)的尾數(shù)右移1位,階碼加1,即進行向右規(guī)格化。4.舍入(1)“0舍1入”法,即右移時丟掉的最高位為0,則舍去;是1,則將尾數(shù)的末位加1(相當于進入)。(2)“恒置1”法,即不管移掉的是0還是1,都把尾數(shù)的末位置1。1.浮點加減法運算

(5/7)5.浮點數(shù)的溢出判斷:由階碼判斷是否溢出。設階碼數(shù)值部分取7位,符號位取2位,用補碼表示,則能表示的最大階碼[E]補=001111111=127;最小階碼[E]補=110000000=-128;(1)小于-128,稱為下溢:發(fā)生在左規(guī)時;用機器0表示(階碼、尾數(shù)全0)(2)大于+127時,稱為上溢,這是浮點數(shù)的真正溢出置溢出標志,作中斷處理總結(jié):

[E]補=01XX…X為上溢,真正溢出,需做溢出處理。

[E]

補=10XX…X為下溢,浮點數(shù)值趨于零,用機器零表示。1.浮點加減法運算

(6/7)例x=0.1101×1001,y=-(0.1010)×1011,求x+y=?解:(1)對階: 假定兩數(shù)在計算機中采用補碼制,則

[x]補=0001,00.1101Ex=0001[y]補=0011,11.0110Ey=0011

求階差:△E=Ex-Ey=0001+1101=1110,即△E=-2,表示x的階碼Ex小于y的階碼Ey,階差為-2,所以應使x的尾數(shù)右移2位,階碼加2,則[x]補=0011,00.0011,這時△E=0,對階完畢。1.浮點加減法運算

(7/7)(2)尾數(shù)求和(差)

x和y對階后的尾數(shù)分別為:[Sx]補=00.0011,[Sy]補=11.0110

則[Sx]補+[Sy]補=00.0011+11.0110=11.1001∴[x+y]補=0011,11.1001(3)規(guī)格化 和的尾數(shù)的兩符號位相等,但小數(shù)點后的第一位也與符號位相等,不是規(guī)格化數(shù),需要進行左規(guī),即向左規(guī)格化:尾數(shù)左移一位,階碼減1,就可得到規(guī)格化的浮點數(shù)結(jié)果。

[x+y]補=0010,11.00102.浮點乘法運算(1/3)設x=Sx·2Ex

,Y=Sy·2Ey則x·Y=(Sx·Sy)·2Ex+Ey浮點數(shù)乘法運算的規(guī)則為:乘積的階碼由兩數(shù)階碼相加求得乘積的尾數(shù)等于被乘數(shù)和乘數(shù)的尾數(shù)之積可采用定點數(shù)乘方法(A)需要對浮點數(shù)尾數(shù)積進行規(guī)格化(左規(guī)、右規(guī):均是最多一位)(B)舍入:0舍1入,若采用雙倍字長乘積時,沒有舍入問題。2.浮點乘法運算(2/3)例3-15已知x=0.110000·10101,y=-0.111000·10100,設階碼數(shù)值部分各取5位,階符2位;尾數(shù)數(shù)值部分各取6位,尾符2位,按機器浮點數(shù)運算步驟,求x×y。解:(1)求階和

[Ex]補=0000101[Ey]補=0000100[△E]補=[Ex]補

+[Ey]補

=0001001(2)尾數(shù)相乘可利用原碼或補碼定點數(shù)乘法求尾數(shù)之乘積,可得

[Sx·Sy]原

=1.101010000000

或[Sx·Sy]補

=1.0101100000002.浮點乘法運算(3/3)(3)規(guī)格化

[Sx×Sy]原或[Sx×Sy]補已是規(guī)格化形式,勿需規(guī)格化。(4)舍入若取單字長乘積,可得[Sx×Sy]原=1.101010或[Sx×Sy]補=1.010110,所以

[x×y]原=1.101010×100001001[x×y]補=1.010110×100001001

得x×y=-0.101010·101001=-1010100003浮點除法運算浮點數(shù)除法的運算規(guī)則為:商的尾數(shù)由兩數(shù)的尾數(shù)相除求得商的階碼由兩數(shù)階碼相減求得設x=Sx·2Ex,y=Sy·2Ey

,則x/y=(Sx/Sy)·2Ex-Ey步驟(1)預置(2)尾數(shù)調(diào)整(3)求階差(4)尾數(shù)相除(5)規(guī)格化(6)舍入浮點加減運算的操作過程分為四步:

1.0操作數(shù)的檢查;

2.比較階碼大小并完成對階;

3.尾數(shù)進行加或減運算;

4.結(jié)果規(guī)格化并進行舍入處理。(1)0操作數(shù)檢查浮點加減運算

溫馨提示

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

評論

0/150

提交評論