版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
計算機組成原理定點數(shù)、浮點數(shù)等運算方法復習數(shù)值表示和運算方法總結(jié)無符號數(shù)和有符號數(shù)定點運算數(shù)的定點表示和浮點表示浮點四則運算算術邏輯單元無符號數(shù)和有符號數(shù)一、無符號數(shù)寄存器的位數(shù)反映無符號數(shù)的表示范圍8位0~25516位0~65535帶符號的數(shù)符號數(shù)字化的數(shù)+0.10110
1011小數(shù)點的位置+11000
1100小數(shù)點的位置–11001
1100小數(shù)點的位置–0.10111
1011小數(shù)點的位置真值機器數(shù)1.機器數(shù)與真值二、有符號數(shù)2.原碼表示法帶符號的絕對值表示(1)定義整數(shù)x
為真值n
為整數(shù)的位數(shù)如x=+1110[x]原
=0,1110[x]原
=24+1110=1,1110x=
1110[x]原=0,x2n
>
x
≥02n
x0≥
x
>2n用逗號將符號位和數(shù)值部分隔開小數(shù)x
為真值如x=+0.1101[x]原
=0.1101x=0.1101[x]原
=1(0.1101)=1.1101x1>
x
≥0[x]原=1–x0≥
x
>1x=0.1000000[x]原
=1(0.1000000)=1.1000000x=
+0.1000000[x]原
=0.1000000用小數(shù)點將符號位和數(shù)值部分隔開用小數(shù)點將符號位和數(shù)值部分隔開原碼的特點:簡單、直觀但是用原碼作加法時,會出現(xiàn)如下問題:能否只作加法?
找到一個與負數(shù)等價的正數(shù)來代替這個負數(shù)就可使減加加法正正加加法正負加法負正加法負負減減加
要求
數(shù)1數(shù)2
實際操作結(jié)果符號正可正可負可正可負負-123(1)補的概念時鐘逆時針-363順時針+96153.補碼表示法可見3可用+9代替記作3≡+9(mod12)同理4≡+8(mod12)5≡+7(mod12)
時鐘以
12為模減法加法稱+9是3以12為模的補數(shù)結(jié)論一個負數(shù)加上“?!奔吹迷撠摂?shù)的補數(shù)一個正數(shù)和一個負數(shù)互為補數(shù)時它們絕對值之和即為模數(shù)計數(shù)器(模16)–101110110000+010110111000010110000?可見1011可用+0101代替同理0110.1001自然去掉記作1011(mod24)≡+0101(mod23)≡+101(mod2)≡+1.0111+
0101(mod24)≡1011(mod24)(2)正數(shù)的補數(shù)即為其本身+10000+10000兩個互為補數(shù)的數(shù)+0101+10101≡分別加上模結(jié)果仍互為補數(shù)∴+0101≡+0101+010124+1–10111,0101用逗號將符號位和數(shù)值部分隔開丟掉10110,1,??1011(mod24)可見?+01010101010110110101+(mod24+1)100000=(3)補碼定義整數(shù)x
為真值n
為整數(shù)的位數(shù)[x]補=0,x2n
>
x
≥02n+1+x0
>
x
≥2n(mod2n+1)如x=+1010[x]補=27+1+(1011000)=[x]補=0,1010x=10110001,0101000用逗號將符號位和數(shù)值部分隔開1011000100000000小數(shù)x
為真值x=+0.1110[x]補=x1>
x
≥02+
x
0>
x
≥1(mod2)如[x]補=0.1110x=0.11000001.0100000[x]補=2
+
(0.1100000)=用小數(shù)點將符號位和數(shù)值部分隔開0.110000010.0000000(4)求補碼的快捷方式=100000=1,011010101+1=1,0110又[x]原=1,1010則[x]補=24+11010=11111+11010=1111110101010當真值為負時,補碼可用原碼除符號位外每位取反,末位加1求得+1設x=1010時4.反碼表示法(1)定義整數(shù)[x]反=0,x2n>x≥0(2n+1–1)+x0≥x>2n(mod2n+1
1)如x
=+1101[x]反=0,1101=1,0010x=1101[x]反=(24+11)1101=111111101用逗號將符號位和數(shù)值部分隔開x
為真值n
為整數(shù)的位數(shù)小數(shù)x
=+0.1101[x]反=
0.1101x=0.1010[x]反=(22-4)
0.1010=1.1111
0.1010=1.0101如[x]反=x1>x≥0(2–2-n)+x0≥x>1(mod22-n)用小數(shù)點將符號位和數(shù)值部分隔開x
為真值n為小數(shù)的位數(shù)三種機器數(shù)的小結(jié)
對于正數(shù),原碼=補碼=反碼
對于負數(shù),符號位為1,其數(shù)值部分原碼除符號位外每位取反末位加1補碼原碼除符號位外每位取反反碼最高位為符號位,書寫上用“,”(整數(shù))或“.”(小數(shù))將數(shù)值部分和符號位隔開5.移碼表示法補碼表示很難直接判斷其真值大小如十進制x=+21x=–21x=
+31x=–31x+25+10101+100000+11111+10000010101+10000011111+100000大大錯錯大大正確正確0,101011,010110,111111,00001+10101–
10101+11111–
11111=110101=001011=111111=000001二進制補碼(1)移碼定義x
為真值,n
為整數(shù)的位數(shù)移碼在數(shù)軸上的表示[x]移碼2n+1–12n2n
–1–2n00真值如x=10100[x]移=25+10100用逗號將符號位和數(shù)值部分隔開x=–10100[x]移=25
–10100[x]移=2n+x(2n>x
≥2n)=1,10100=0,01100(2)移碼和補碼的比較設x=+1100100[x]移=27+1100100[x]補=0,1100100設x=–1100100[x]移=27
–1100100[x]補=1,0011100補碼與移碼只差一個符號位=1,1100100=0,00111001001-100000-11111-11110-00001±00000+00001+00010+11110+11111……真值x(n
=
5)[x]補[x]移[x]移對應的十進制整數(shù)(3)真值、補碼和移碼的對照表……012313233346263……000000000010000001011111100000100001100010111110111111……011111011110000010000001000000111111100010100001100000-100000±00000+11111000000111111000000100000
當x=0時[+0]移=25+0
當n=5時可見,最小真值的移碼為全0(4)移碼的特點用移碼表示浮點數(shù)的階碼能方便地判斷浮點數(shù)的階碼大小=1,00000=1,00000=000000[0]移=250∴[+0]移=[0]移[
100000]移=25
100000最小的真值為25=
100000數(shù)的定點表示和浮點表示小數(shù)點按約定方式標出一、定點表示Sf
S1S2
Sn…數(shù)符數(shù)值部分小數(shù)點位置Sf
S1S2
Sn…數(shù)符數(shù)值部分小數(shù)點位置或定點機小數(shù)定點機整數(shù)定點機原碼補碼反碼–(1–2-n)~+(1–2-n)–(2n
–1)~+(2n
–1)–1~+(1–2-n)–2n~+(2n
–1)–(1–2-n)~+(1–2-n)–(2n
–
1)~+(2n
–1)二、浮點表示N=S×rj浮點數(shù)的一般形式S
尾數(shù)j
階碼r
基數(shù)(基值)計算機中r
取2、4、8、16等當r=2N=11.0101=0.110101×210=1.10101×21=1101.01×2-10
=0.00110101×2100
計算機中S
小數(shù)、可正可負j
整數(shù)、可正可負
規(guī)格化數(shù)二進制表示1.浮點數(shù)的表示形式Sf
代表浮點數(shù)的符號n
其位數(shù)反映浮點數(shù)的精度m
其位數(shù)反映浮點數(shù)的表示范圍jf
和m
共同表示小數(shù)點的實際位置jf
j1
j2
jm
Sf
S1S2
Sn
……j
階碼S
尾數(shù)階符數(shù)符階碼的數(shù)值部分尾數(shù)的數(shù)值部分小數(shù)點位置2.浮點數(shù)的表示范圍–2(2m–1)×(1
–
2–n)–2–(2m–1)×2–n2(2m–1)×(1
–
2–n)2–(2m–1)×2–n最小負數(shù)最大負數(shù)最大正數(shù)最小正數(shù)負數(shù)區(qū)正數(shù)區(qū)下溢0上溢上溢–215
×(1
–
2-10)
–2-15
×2-10
215
×(1
–
2-10)
設m=4
n=10上溢階碼>最大階碼下溢階碼<最小階碼按機器零處理2-15
×2-10
定點運算一、移位運算1.移位的意義15m=1500cm小數(shù)點右移2位機器用語15相對于小數(shù)點左移2位(小數(shù)點不動)..左移絕對值擴大右移絕對值縮小在計算機中,移位與加減配合,能夠?qū)崿F(xiàn)乘除運算2.算術移位規(guī)則1右移添1左移添00反碼補碼原碼負數(shù)0原碼、補碼、反碼正數(shù)添補代碼碼制符號位不變[例1]設機器數(shù)字長為8位(含1位符號位),寫出A=+26時,三種機器數(shù)左、右移一位和兩位后的表示形式及對應的真值,并分析結(jié)果的正確性。解:A=+26則[A]原=[A]補=[A]反=0,0011010+
60,0000110+130,0001101+1040,1101000+
520,0110100+260,0011010移位前[A]原=[A]補=[A]反對應的真值機器數(shù)移位操作=+11010左移一位左移兩位右移一位右移兩位[例2]設機器數(shù)字長為8位(含1位符號位),寫出A=–26時,三種機器數(shù)左、右移一位和兩位后的表示形式及對應的真值,并分析結(jié)果的正確性。解:A=–26–61,0000110–131,0001101–1041,1101000–521,0110100–261,0011010移位前對應的真值機器數(shù)移位操作原碼=–11010左移一位左移兩位右移一位右移兩位–61,1111001–131,1110010–1041,0010111–521,1001011–261,1100101移位前對應的真值機器數(shù)移位操作–71,1111001–131,1110011–1041,0011000–521,1001100–261,1100110移位前對應的真值機器數(shù)移位操作補碼反碼左移一位左移兩位右移一位右移兩位左移一位左移兩位右移一位右移兩位二、加減法運算1.補碼加減運算公式(1)加法(2)減法整數(shù)[A]補+[B]補=[A+B]補(mod2n+1)小數(shù)[A]補+[B]補=[A+B]補(mod2)A–B=A+(–B)整數(shù)[A–B]補=[A+(–B)]補=[A]補+[
–
B]補(mod2n+1)小數(shù)[A–B]補=[A+(–B)]補(mod2)連同符號位一起相加,符號位產(chǎn)生的進位自然丟掉=[A]補+[
–
B]補2.舉例解:[A]補[B]補[A]補+[B]補+=0.1011=1.1011=10.0110=[A+B]補驗證[例3]設A=0.1011,B=–
0.0101求[A+B]補0.1011–0.01010.0110∴A+B
=0.0110[A]補[B]補[A]補+[B]補+=1,0111=1,1011=11,0010=[A+B]補驗證–1001–1110–0101+[例4]設A=–9,B=–5求[A+B]補解:∴A+B
=–1110[例5]設機器數(shù)字長為8位(含1位符號位)且A=15,B=24,用補碼求A–B解:A=15=0001111B=24=0011000[A]補+[–
B]補+[A]補=0,0001111[–
B]補=1,1101000=1,1110111=[A–B]補[B]補=0,0011000∴A–B=–1001=–93.溢出判斷(1)一位符號位判溢出參加操作的兩個數(shù)(減法時即為被減數(shù)和“求補”以后的減數(shù))符號相同,其結(jié)果的符號與原操作數(shù)的符號不同,即為溢出硬件實現(xiàn)最高有效位的進位符號位的進位=1如10=101=1有溢出00=011=0無溢出溢出(2)兩位符號位判溢出[x]補'
=
x1>x≥04+x0>x≥–1(mod4)[x]補'+[y]補'=[x+y]補'(mod4)[x–y]補'=[x]補'+[–
y]補'(mod4)結(jié)果的雙符號位相同未溢出結(jié)果的雙符號位不同溢出最高符號位代表其真正的符號00.×××××11.×××××10.×××××01.×××××00,×××××11,×××××10,×××××01,×××××三、乘法運算1.分析筆算乘法A=–0.1101B=0.1011A×B=–0.100011110.11010.101111011101000011010.10001111符號位單獨處理乘數(shù)的某一位決定是否加被乘數(shù)4個位積一起相加乘積的位數(shù)擴大一倍×乘積的符號心算求得
?2.筆算乘法改進A
?B=A
?0.1011=0.1A+0.00A+0.001A+0.0001A=0.1A+0.00A+0.001(A+0.1A)=0.1A+0.01[0?
A+0.1(A+0.1A)]=0.1{A+0.1[0?
A+0.1(A+0.1A)]}=2-1{A+2-1[0?
A+2-1(A+2-1(A+0))]}①②⑧第一步被乘數(shù)A
+0第二步右移一位,得新的部分積第八步右移一位,得結(jié)果③第三步部分積+被乘數(shù)…右移一位3.改進后的筆算乘法過程(豎式)0.00000.11010.11010.11010.00000.1101初態(tài),部分積=0乘數(shù)為1,加被乘數(shù)乘數(shù)為1,加被乘數(shù)乘數(shù)為0,加01.001110.1001111.0001111乘數(shù)為1,加被乘數(shù)0.100011111,得結(jié)果1011=0.01101,形成新的部分積1101=0.10011,形成新的部分積1110=0.01001,形成新的部分積1111=部分積乘數(shù)說明++++小結(jié)被乘數(shù)只與部分積的高位相加
由乘數(shù)的末位決定被乘數(shù)是否與原部分積相加,然后1位形成新的部分積,同時乘數(shù)
1
位(末位移丟),空出高位存放部分積的低位。硬件3
個寄存器,具有移位功能1
個全加器乘法運算可用加和移位實現(xiàn)
n=4,加4次,移4次4.原碼乘法(1)原碼一位乘運算規(guī)則以小數(shù)為例設[x]原=x0.x1x2
xn…[y]原=y0.y1y2
yn…=(x0
y0).x*y*[x
?y]原=(x0
y0).(0.x1x2
xn)(0.y1y2
yn)……式中x*=0.x1x2
xn
為x
的絕對值…y*=0.y1y2
yn
為y
的絕對值…乘積的符號位單獨處理x0
y0數(shù)值部分為絕對值相乘x*?
y*(2)原碼一位乘遞推公式x*?
y*=x*(0.y1y2
yn)…=x*(y12-1+y22-2++yn2-n)…=2-1(y1x*+2-1(y2x*+2-1(ynx*+0)))……z1znz0=0z1=2-1(ynx*+z0)z2=2-1(yn-1x*+z1)zn=2-1(y1x*+zn-1)……z0[例6]已知x=–0.1110y=0.1101求[x?y]原解:數(shù)值部分的運算0.00000.11100.11100.00000.11100.1110部分積初態(tài)z0=0部分積乘數(shù)說明0.011101.0001101.01101100.101101101,得
z4邏輯右移1101=0.01111,得
z10110=0.00111,得
z21011=0.10001,得
z31101=邏輯右移邏輯右移邏輯右移+++++x*+0+x*+x*②數(shù)值部分按絕對值相乘①乘積的符號位
x0
y0=10=1x*?
y*=0.10110110則[x
?
y]原
=1.10110110特點絕對值運算邏輯移位[例6]結(jié)果用移位的次數(shù)判斷乘法是否結(jié)束原碼一位乘法的規(guī)則為:
①符號位單獨處理,同號為正,異號為負;
②令乘數(shù)的最低位為判斷位,若為“1”,加被乘數(shù),若為“0”,不加被乘數(shù)(加0);
③累加后的部分積右移一位。乘法運算需要三個寄存器:
A寄存器:部分積與最后乘積的高位部分,初值為0。
B寄存器:被乘數(shù)X。
C寄存器:乘數(shù)Y,運算后C寄存器中不再需要保留乘數(shù),改為存放乘積的低位部分。
(4)原碼兩位乘原碼乘符號位和數(shù)值位部分分開運算兩位乘每次用乘數(shù)的2位判斷原部分積是否加和如何加被乘數(shù)11100100加“0”2加1倍的被乘數(shù)2加2倍的被乘數(shù)2加3倍的被乘數(shù)23?先減1倍的被乘數(shù)再加4倍的被乘數(shù)4–13100–0111新的部分積乘數(shù)yn-1
yn(5)原碼兩位乘運算規(guī)則111110101100011010001000操作內(nèi)容標志位Cj乘數(shù)判斷位yn-1yn
z2,y*2,Cj
保持“0”
z2,y*2,Cj
保持“1”z–x*2,y*2,Cj
保持“1”
z+2x*2,y*2,Cj
保持“0”z+x*2,y*2,Cj
保持“0”共有操作+x*+2x*–x*2實際操作+[x*]補+[2x*]補+[–x*]補2補碼移z–x*2,y*2,Cj置“1”z+2x*2,y*2,Cj置“0”z+x*2,y*2,Cj置“0”[例7]已知x=0.111111y=–0.111001求[x·y]原000.000000000.111111000.11111100.1110010初態(tài)
z0=0+x*,Cj=0010.00110111000.111000000111111.1001000111001.111110+2x*,Cj=0111.000001–x*,Cj=1000.111111+x*,Cj=00000.0011111100111020000.1000110111001121111.111001000111002Cj部分積乘數(shù)說明補碼右移補碼右移解:數(shù)值部分的運算補碼右移++++②數(shù)值部分的運算①乘積的符號位
x0
y0=01=1x*?
y*=0.111000000111則[x
?
y]原=1.111000000111[例7]結(jié)果特點絕對值的補碼運算算術移位用移位的次數(shù)判斷乘法是否結(jié)束(6)原碼兩位乘和原碼一位乘比較符號位操作數(shù)移位移位次數(shù)最多加法次數(shù)x0
y0x0
y0絕對值絕對值的補碼邏輯右移算術右移nnn2(n為偶數(shù))n2+1(n為偶數(shù))思考n
為奇數(shù)時,原碼兩位乘移?次最多加?次原碼一位乘原碼兩位乘5.補碼乘法設被乘數(shù)乘數(shù)[x]補=x0.x1x2
xn…[y]補=y0.y1y2
yn…①被乘數(shù)任意,乘數(shù)為正同原碼乘但加和移位按補碼規(guī)則運算乘積的符號自然形成②被乘數(shù)任意,乘數(shù)為負乘數(shù)[y]補,去掉符號位,操作同①最后加[–x]補,校正(1)補碼一位乘運算規(guī)則以小數(shù)為例③Booth算法(被乘數(shù)、乘數(shù)符號任意)設[x]補=x0.x1x2
xn[y]補=y0.y1y2
yn……[x·y]補=[x]補(0.y1
yn)–[x]補·y0…=[x]補(y12-1+y22-2++yn2-n)–[x]補·y0…=[x]補(–y0+y1
2-1+y22-2++yn2-n)…=[x]補[–y0+(y1–
y12-1)+(y22-1–y22-2)++(yn2-(n-1)–yn2-n)]…=[x]補[(y1–y0)+(y2–y1)2-1++(yn–yn-1)2-(n-1)+(0
–yn)2-n)]…y12-1++…yn
2-n–[x]補=+[–x]補
2-1=20–2-12-2=2-1–2-22-12-2=[x]補[(y1–y0)+(y2–y1)2-1++(yn+1–yn)2-n]…
附加位
yn+1④Booth算法遞推公式[z0]補=0[z1]補=2-1{(yn+1–yn)[x]補+[z0]補}yn+1=0[zn]補=2-1{(y2–y1)[x]補+[zn-1]補}…[x
·
y]補=[zn]補+(y1–y0)[x]補最后一步不移位如何實現(xiàn)
yi+1–yi
?000110111+[x]補
1+[–x]補
1101-10yi
yi+1操作yi+1–yi
Booth乘法規(guī)則如下:⑴參加運算的數(shù)用補碼表示;⑵符號位參加運算;⑶由于每求一次部分積要右移一位,所以乘數(shù)的最低兩位Yn、Yn+1的值決定了每次應執(zhí)行的操作;⑷移位按補碼右移規(guī)則進行;⑸共需做n+1次累加,n次移位。判斷位YnYn+1操作
00原部分積右移一位
01原部分積加[X]補后右移一位
10原部分積加[-X]補后右移一位
11原部分積右移一位已知X=-0.1101,Y=0.1011;求X
Y。
[X]補=1.0011→B,[Y]補=0.1011→C,0→A[-X]補=0.1101
AC附加位說明00.00000.10110+[-X]補
00.1101C4C5=10,+[-X]補00.1101→00.0110101011部分積右移一位+000.0000C4C5=11,+000.0110→00.0011010101部分積右移一位+[X]補
11.0011C4C5=01,+[X]補11.0110→11.1011001010部分積右移一位+[-X]補
00.1101C4C5=10,+[-X]補00.1000→00.0100000101部分積右移一位+[X]補
11.0011C4C5=01,+[X]補11.0111∵[X
Y]補=1.01110001∴X
Y=-0.10001111[例8]已知x=+0.0011y=–0.1011求[x·y]補解:00.000011.110111.110100.001111.110100.001111.11011.0101000.0001111.11011100.000111111.11011111
[x]補=0.0011
[y]補=1.0101[–x]補=1.1101+[–x]補11.11101101011+[x]補00.00001110101+[–x]補11.1110111101100.00001111101+[–x]補+[x]補∴
[x·y]補=1.11011111最后一步不移位補碼右移補碼右移補碼右移補碼右移+++++乘法小結(jié)原碼乘符號位單獨處理補碼乘符號位自然形成原碼乘去掉符號位運算即為無符號數(shù)乘法不同的乘法運算需有不同的硬件支持整數(shù)乘法與小數(shù)乘法完全相同可用逗號代替小數(shù)點四、除法運算1.分析筆算除法x=–0.1011y=0.1101求x÷y0.10110.1101⌒0.011010.010010.0011010.0001010.000011010.000001111商符單獨處理心算上商余數(shù)不動低位補“0”減右移一位的除數(shù)上商位置不固定x÷y=–0.1101余數(shù)0.00000111商符心算求得00.101000
???2.筆算除法和機器除法的比較筆算除法機器除法商符單獨處理心算上商符號位異或形成|x|–|y|>0上商1|x|–|y|<0上商0余數(shù)不動低位補“0”減右移一位的除數(shù)2倍字長加法器上商位置不固定余數(shù)左移一位低位補“0”減除數(shù)1倍字長加法器在寄存器最末位上商3.原碼除法以小數(shù)為例[x]原=x0.x1x2
xn…[
y]原=y0.y1y2
yn…式中x*=0.x1x2
xn
為x
的絕對值
y*=0.y1y2
yn
為y
的絕對值……數(shù)值部分為絕對值相除x*y*被除數(shù)不等于0除數(shù)不能為0小數(shù)定點除法x*<y*整數(shù)定點除法x*>
y*商的符號位單獨處理
x0
y0[]原=(x0
y0).xyx*y*約定4恢復余數(shù)法恢復余數(shù)法是直接作減法試探方法,不管被除數(shù)(或余數(shù))減除數(shù)是否夠減,都一律先做減法。若余數(shù)為正,表示夠減,該位商上“1”;若余數(shù)為負,表示不夠減,該位商上“0”,并要恢復原來的被除數(shù)(或余數(shù))?;謴陀鄶?shù)法0.10111.00111.00111.00110.0000+[–y*]補01.1110余數(shù)為負,上商00.1101恢復余數(shù)00.1001余數(shù)為正,上商1+[–y*]補1.0110011.0010011+[–y*]補解:被除數(shù)(余數(shù))商說明[x]原=1.1011[y]原
=1.1101①x0
y0=1
1=0②x=–0.1011
y=–0.1101求[]原
xy[例9]10.1011恢復后的余數(shù)0+[y*]補[y*]補=0.1101[–y*]補
=1.0011邏輯左移邏輯左移++++0.010101余數(shù)為正,上商1被除數(shù)(余數(shù))商說明1.00110.11011.001110.1010011+[–y*]補1.1101011余數(shù)為負,上商0恢復余數(shù)1.010001101+[–y*]補0.01110110余數(shù)為正,上商1=0.1101x*y*∴[]原xy=0.1101上商5次第一次上商判溢出余數(shù)為正上商1余數(shù)為負上商0,恢復余數(shù)移4次100.1010恢復后的余數(shù)01101+[y*]補邏輯左移邏輯左移+++(2)不恢復余數(shù)法余數(shù)Ri>0上商“1”,2Ri
–y*余數(shù)Ri<0上商“0”,
Ri
+y*恢復余數(shù)2(Ri+y*)–y*=2Ri
+y*加減交替恢復余數(shù)法運算規(guī)則不恢復余數(shù)法運算規(guī)則上商“1”2Ri–y*
上商“0”2Ri+y*(加減交替法)x=–0.1011y=–0.1101求[]原xy解:[例10]0.10111.00110.11011.00111.00110.11010.0000+[–y*]補01.1110余數(shù)為負,上商01.110001+[y*]補00.1001余數(shù)為正,上商1+[–y*]補1.0010011+[–y*]補+[y*]補0.101001111.1010011010.010101余數(shù)為正,上商10.01110110余數(shù)為正,上商11.1101011余數(shù)為負,上商0[x]原=1.1011[y*]補=0.1101[–y*]補=1.0011[y]原=1.11011101邏輯左移[x*]補=0.1011邏輯左移邏輯左移邏輯左移+++++①x0
y0=1
1=0②x*y*=0.1101∴=0.1101[]原xy上商n+1次[例10]結(jié)果特點用移位的次數(shù)判斷除法是否結(jié)束第一次上商判溢出移n
次,加n+1次需要指出的是,在定點小數(shù)除法運算時,為了防止溢出,要求被除數(shù)的絕對值小于除數(shù)的絕對值,即|X|<|Y|,且除數(shù)不能為0。另外,在原碼加減交替法中,當最終余數(shù)為負數(shù)時,必須恢復一次余數(shù),使之變?yōu)檎嬗鄶?shù),注意此時不需要再左移了。
[例]已知:X=0.10101,Y=-0.11110,求:X
Y。
|X|=0.10101→A,|Y|=0.11110→B,0→C[|Y|]變補=1.00010
AC說明00.101010.00000+[|Y|]變補
11.00010-|Y|11.101110.00000余數(shù)為負,商0←11.01110左移一位+|Y|00.11110+|Y|00.011000.00001余數(shù)為正,商1←00.11000左移一位+[|Y|]變補
11.00010-|Y|11.110100.00010余數(shù)為負,商0←11.10100左移一位+|Y|00.11110+|Y|00.100100.00101余數(shù)為正,商1←01.00100左移一位+[|Y|]變補
11.00010-|Y|00.001100.01011余數(shù)為正,商1←00.01100左移一位+[|Y|]變補
11.00010-|Y|11.011100.10110余數(shù)為負,商0+|Y|00.11110恢復余數(shù),+|Y|00.01100經(jīng)過原碼加減交替除法,有:∴商=0.10110余數(shù)=0.011002-5X÷Y=–
(0.10110+)0.011002-50.11110(3)原碼加減交替除法硬件配置A、X、Q均n
+1位用Qn控制加減交替
0
A
nn+1位加法器控制門0
X
n0Q
n
計數(shù)器CGD加減移位和加控制邏輯SV左移[Ri]補=0.1000[x]補=1.1101[y]補=1.01014.補碼除法(1)商值的確定x=0.1011y=0.0011[x]補=0.1011[y]補=0.0011[x]補=0.1011[–y]補=1.1101[Ri]補=0.1000x=–0.0011y=–0.1011[x]補=1.1101[–y]補=0.1011x*>y*[Ri]補與[y]補同號“夠減”x*<y*[Ri]補與[y]補異號“不夠減”++①比較被除數(shù)和除數(shù)絕對值的大小x
與y
同號小結(jié)x=0.1011y=–0.0011[x]補=0.1011[y]補=1.1101[x]補=0.1011[y]補=1.1101[Ri]補=0.1000x=–0.0011y=0.1011[x]補=1.1101[y]補=0.1011[x]補=1.1101[y]補=0.1011[Ri]補=0.1000x*>y*[Ri]補與[y]補異號“夠減”x*<y*[Ri]補與[y]補同號“不夠減”++x
與y
異號[x]補和[y]補求
[Ri]補[Ri]補與[y]補同號異號[x]補–[y]補[x]補+[y]補同號,“夠減”異號,“夠減”②商值的確定[x]補與[y]補同號正商按原碼上商“夠減”上“1”“不夠減”上“0”[x]補與[y]補異號負商按反碼上商“夠減”上“0”“不夠減”上“1”原碼0.××××
1反碼1.××××
1末位恒置“1”法小結(jié)簡化為(同號)(異號)(異號)(同號)×.××××
1[x]補與[y]補商[Ri]補與[y]補商值夠減不夠減夠減不夠減同號異號正負1001原碼上商反碼上商[Ri]補與[y]補商值同號異號10(2)商符的形成除法過程中自然形成[x]補和[y]補同號[x]補–[y]補比較[Ri]補和[y]補同號(夠)“1”異號(不夠)“0”原碼上商小數(shù)除法第一次“不夠”上“0”正商[x]補和[y]補異號[x]補+[y]補比較[Ri]補和[y]補異號(夠)“0”同號(不夠)“1”反碼上商小數(shù)除法第一次“不夠”上“1”負商(3)新余數(shù)的形成加減交替[Ri]補和[y]補商新余數(shù)同號異號102[Ri]補+[–y]補2[Ri]補+[
y
]補例11設x=–0.1011y=0.1101求并還原成真值[]補xy解:[x]補=1.0101[y]補=0.1101[–y]補=1.00111.01010.11011.00110.11010.11010.0000異號做加法10.0010同號上“1”1.01111異號上“0”+[y]補1.101110異號上“0”+[y]補0.0011100同號上“1”0.0100110.11101011.01101001末位恒置“1”0.011010011[]補=1.0011xy∴0011+[–y]補xy=–0.1101則邏輯左移邏輯左移邏輯左移邏輯左移++++(4)小結(jié)補碼除法共上商n
+1次(末位恒置1)第一次為商符第一次商可判溢出加n
次移n次用移位的次數(shù)判斷除法是否結(jié)束精度誤差最大為2-n(5)補碼除和原碼除(加減交替法)比較x0
y0自然形成絕對值補碼補碼余數(shù)的正負比較余數(shù)和除數(shù)的符號n+1n+1原碼除補碼除商符操作數(shù)上商原則上商次數(shù)加法次數(shù)移位次數(shù)第一步操作移位[x*]補-
[y*]補n邏輯左移nn+1邏輯左移n同號[x]補-
[y]補異號[x]補+
[y]補浮點四則運算一、浮點加減運算x=Sx·2jxy=Sy·2jy1.對階(1)求階差(2)對階原則Δj=jx–jy=jx=jy
已對齊jx>
jy
jx<
jy
x
向
y
看齊y
向
x
看齊x
向
y
看齊y
向
x
看齊小階向大階看齊Sx1,Sy1,Sx1,Sy1,=0>0<0
jx–1jy+1jx+1jy–1例如x=0.1101
×
201
y=(–0.1010)
×
211求x
+
y解:[x]補=00,01;00.1101[y]補=00,11;11.01101.對階[Δj]補=[jx]補–[jy]補=00,0111,0111,10階差為負(–
2)[Sx]補'
=00.0011[Sy]補=11.011011.1001∴Sx2
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)財務會計內(nèi)部控制探討
- 感謝信書寫格式
- 【2021屆備考】2021屆全國名校生物試題分類解析匯編第七期(12月)-M單元-實驗
- 電梯困人應急預案5篇
- 部編版八年級語文下冊教學計劃(完整)
- 下一步工作計劃(共4篇)
- 南沙區(qū)地圖廣州市南沙區(qū)鄉(xiāng)鎮(zhèn)街道地圖高清矢量可填充編輯地
- 領導帶班值班制度
- 融資租賃公司績效評價與激勵機制考核試卷
- 飛機電氣系統(tǒng)過電壓保護技術考核試卷
- (完整版)非計劃性拔管魚骨圖
- DB32∕T 3377-2018 城市公共建筑人防工程規(guī)劃設計規(guī)范
- 中建三局住宅工程精益建造實施指南
- 分布式光伏發(fā)電項目并網(wǎng)驗收意見單
- 網(wǎng)站隱私政策模板
- YY∕T 1831-2021 梅毒螺旋體抗體檢測試劑盒(免疫層析法)
- 消弧產(chǎn)品規(guī)格實用標準化規(guī)定
- 裝飾裝修工程施工合理化建議和降低成本措施提要:完整
- 第十四章35kV變電站保護整定值計算實例
- 液態(tài)模鍛工藝介紹
- 水泵水輪機結(jié)構(gòu)介紹
評論
0/150
提交評論