




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章數(shù)據(jù)的表示和運算主要內容:數(shù)制與編碼定點數(shù)的表示和運算定點數(shù)的表示:無符號數(shù)的表示;有符號數(shù)的表示。定點數(shù)的運算:定點數(shù)的移位運算;補碼定點數(shù)的加/減運算;定點數(shù)的乘/除運算;溢出概念和判別方法。浮點數(shù)的表示和運算算術邏輯單元
ALU2.2定點數(shù)的表示和運算定點數(shù):在計算機中,小數(shù)點位置固定不變的數(shù)。(1)無符號數(shù)的表示 機器字長的全部位數(shù)均用來表示數(shù)值的大小,相當于數(shù)的絕對值。對于字長為n位的無符號數(shù)的表示范圍為:0—2n-1。(2)帶符號數(shù)的表示在計算機中將數(shù)的符號數(shù)碼化。一般規(guī)定二進制的最高位為符號位,最高位為“0”表示該數(shù)為正,為“1”表示該數(shù)為負。這種在機器中使用符號位也被數(shù)碼化的數(shù)稱為機器數(shù)。根據(jù)符號位和數(shù)值位的編碼方法不同,機器數(shù)分為原碼、補碼和反碼等。定點整數(shù)、定點小數(shù)2.2.1定點數(shù)的表示數(shù)值范圍和數(shù)據(jù)精度數(shù)值范圍數(shù)值范圍是指一種類型的數(shù)據(jù)所能表示的最大值和最小值。數(shù)據(jù)精度通常指實數(shù)所能給出的有效數(shù)字位數(shù);對浮點數(shù)來說,精度不夠會造成誤差,誤差大量積累會出問題。定點小數(shù)表示:X=X0X-1X-2…X-(n-1)[X]原=X
1-X
-(1-2-(n-1))≤
X≤0-1
≤X≤0Mod20≤X≤
1-2-(n-1)(純小數(shù))原碼,反碼,補碼的定義n位字長(1位符號位,n-1位數(shù)值位)X(2-2-(n-1))+X[X]反=X
2+X[X]補=
-(1-2-(n-1))≤
X≤00≤X≤
1-2-(n-1)0≤X≤
1-2-(n-1)實例:X1=0.1011-0.10110.0000[X]原
=01011110110000010000
說明:原碼是符號位加數(shù)的絕對值,符號0正1負
原碼零有兩個編碼,+0和-0的編碼不同
原碼難以用于加減運算,但乘除方便(純小數(shù))原碼的定義與說明定義:[X]原=X
1-X
-(1-2-(n-1))≤
X≤00≤X≤
1-2-(n-1)實例:X1=0.1011-0.10110.0000[X]補
=01011
10101
00000說明:補碼最高一位是符號位,符號0正1負
補碼表示為:2×符號位+數(shù)的真值
補碼零只有一個編碼,故能表示-1
補碼能很好地用于加減(乘除)運算(純小數(shù))補碼的定義與說明定義:X
2+X[X]補=-1
≤X≤0Mod20≤X≤
1-2-(n-1)補碼的一些補充說明由[X]補(X0X1X2…Xn)求真值X[X]補
=2X0+X→X=[X]補
-2X0=X0X1X2…Xn-2X0=-X0+(-X0+X0X1X2…Xn)=-X0+0.X1X2…Xn負數(shù)的[X]補與[X]反的關系由[X]反
=(2–2-n)+X,[X]補=2+X可得到:[X]補
=[X]反
+2-n補碼的一些補充說明得到一個數(shù)補碼表示的簡便辦法當X≥0時,[X]補的符號位取0,數(shù)值位取X的各數(shù)值位上的值,此時有[X]補=X
當X<0時,[X]補的符號位取1,將X的各數(shù)值位取反,再在最低位加1,以得到[X]補的各數(shù)值位上的值
(見負數(shù)[X]補與[X]反的關系)[X]原與[X]補的相互轉換簡便方法從[X]原求[X]補時,對正數(shù)或零,有[X]補=[X]原,對負數(shù)則符號位不變,各數(shù)值位變反后再在最低位執(zhí)行加1操作由[X]補求[X]原時,對負數(shù)仍是符號位不變,各數(shù)值位變反后再在最低位執(zhí)行加1操作已知[y]補如何簡單求[-y]補
<Ⅰ>[y]補
=0y1
y2
yn…y=0.y1y2
yn…y=0.y1
y2
yn…[y]補
=1y1
y2
yn+2-n…<Ⅱ>[y]補
=1y1
y2
yn…[y]原
=1y1y2
yn+2-n…
y=(0.y1y2
yn
+2-n)…
y=0.y1y2
yn+2-n……[y]補
=0y1
y2
yn+2-n每位取反,即得[y]補[y]補連同符號位在內,末位加1每位取反,即得[y]補[y]補連同符號位在內,末位加1整數(shù)的編碼表示整數(shù)的原碼
反碼
補碼表示與小數(shù)的三種表示基本相同差別僅表現(xiàn)在小數(shù)點的位置可以認為整數(shù)的小數(shù)點在最低數(shù)值位的右側因此整數(shù)的模與整數(shù)位數(shù)有關講課中不大用整數(shù)講原反補
碼定義例如:整數(shù)6位編碼(1位符號位,5位數(shù)值位)X=+01110[X]原=001110[X]補=001110X=-01110[X]原=101110[X]補=110010X為真值整數(shù)的機器數(shù)n位字長(1位符號位,n-1位數(shù)值位)[X]原=X
2n-1-X
-(2n-1-1)≤
X≤00≤X≤
2n-1-1X(2n-1)+X[X]反=
-(2n-1-1)≤
X≤00≤X≤
2n-1-1X
2n+X[X]補=-2n-1
≤X≤00≤X≤
2n-1-1(mod2n)000000000000000100000010…011111111000000010000001111111011111111011111111…二進制代碼無符號數(shù)對應的真值原碼對應的真值補碼對應的真值反碼對應的真值128129012127…253254255…-128-127-3-2-1…0+1+2+127…-127-126-2-1-0…+0+1+2+127…-0-1-125-126-127…+0+1+2+127…設機器數(shù)字長為8位(含1位符號位),表示整數(shù)時,每個編碼分別代表無符號數(shù)、原碼、補碼和反碼的真值各為多少?整數(shù)的移碼表示(用于浮點數(shù)階碼)[X]移
=2n-1+X移碼定義:X為真值,若機器字長為n位移碼在數(shù)軸上的表示例如:n=8x=10100[x]移
=27+10100x=–10100[x]移
=27
–10100=10010100=01101100-2n-1
≤X≤
2n-1
-1[X]移2n–12n-12n-1
–1–2n-100真值X[X]移
=2n-1+X=2n+2n-1+X=2n-1+[X]補原、反、補、移碼表示小結正數(shù)的
原碼、反碼、補碼表示均相同,符號位為0,數(shù)值位同數(shù)的真值。0的原碼和反碼有2個編碼,補碼和移碼只1個碼負數(shù)的
原碼、反碼、補碼表示均不同,符號位為1,數(shù)值位:原碼為數(shù)的絕對值反碼為每一位均取反補碼為反碼再在最低位+1由[X]補求[-X]補:無論正、負,每一位取反后再在最低位+1同一個整數(shù)的移碼與補碼僅符號位相反。2.2.2定點數(shù)的運算(1)定點數(shù)的移位運算移位是一種常用的操作,例如,在乘法中需要右移,在除法中需要左移,在代碼處理中也經(jīng)常需要移位操作。移位可分為算術移位和邏輯移位,有左移和右移之分??梢詫拇嫫骰虼鎯卧械臄?shù)據(jù)進行移位。一次可以只移一位,也可以按指令中規(guī)定的次數(shù)移若干位。①算術移位:移位的對象是數(shù)值型數(shù)據(jù),在移位后會發(fā)生數(shù)值大小的變化。對于二進制數(shù),左移,絕對值擴大;右移,絕對值縮小。算術移位規(guī)則:符號位不變②邏輯移位:包括邏輯左移、邏輯右移、循環(huán)左移和循環(huán)右移等。邏輯移位使代碼序列進行循環(huán)移位或非循環(huán)移位,參與移位的對象被視為純邏輯意義上的代碼組合,邏輯移位只是使數(shù)碼位置發(fā)生變化,沒有正、負性質,也沒有數(shù)值大小問題。③算術移位和邏輯移位的區(qū)別:算術移位:帶符號數(shù)移位邏輯移位:無符號數(shù)移位(2)補碼定點數(shù)的加/減運算
n位字長①
加法
整數(shù)[X+Y]補=[X]補+[Y]補
(mod2n)小數(shù)[X+Y]補=[X]補+[Y]補
(mod2)②
減法整數(shù)[X-Y]補=
[X+(-Y)]補=[X]補+[-Y]補
(mod2n)小數(shù)[X-Y]補=
[X+(-Y)]補=[X]補+[-Y]補
(mod2)無需符號判定,數(shù)值位連同符號位一起相加,符號位產(chǎn)生的進位自然丟掉。關鍵是由[Y]補求[-Y]補,
[-Y]補=對[Y]補
逐位取反再在最低位加1。實現(xiàn)補碼加減運算的邏輯電路X←X+YX←X-YF←
XF←YX←F加F←XFs加法器(ALU)目的寄存器源寄存器選通門二選通門選通門F←1XYF←YX←F0101F←YFsOVRZC累加器YF←XF←YF←1X←
F減00000111實現(xiàn)補碼加運算的執(zhí)行過程X←X+Y完成加運算,需要把被加數(shù)和加數(shù)送ALU的輸入端,運算結果要接收到累加器,需要給出命令:F←XF←YX←FF←XF←YX←FFs
加法器
0101011010110001選通門二選一選通門XYFsOVRZC被加數(shù)/和Y加數(shù)CP101100010101011000000111CP命令建立數(shù)據(jù)傳送加運算存結果命令建立00000111數(shù)據(jù)傳送命令建立實現(xiàn)補碼減運算的邏輯電路F←XF←YX←FFs
加法器
0101011011110001選通門二選一選通門XYFsOVRZC被減數(shù)/差Y減數(shù)CPCP命令建立數(shù)據(jù)傳送加運算存結果命令建立數(shù)據(jù)傳送命令建立F←1100001110
01100101
01010110
01100101
X←X–Y完成減運算,需要把被減數(shù)和減數(shù)送ALU的輸入端,運算結果要接收到累加器,需要給出命令:F←XF←Y,F(xiàn)←1X←F(3)溢出概念和判別方法當運算結果超出機器數(shù)所能表示的范圍時,稱為溢出。一旦溢出,運算結果就不正確了,因此必須將溢出的情況檢查出來。主要判別方法:①單符號位:當任意符號兩數(shù)相加時,設Cf為最高數(shù)值位的進位,Cs為符號位的進位,若Cf=Cs,運算結果正確;若Cf≠Cs
,則產(chǎn)生溢出。
溢出條件:OV=Cs⊕Cf
。②雙符號:變形補碼,第一符號位Sf1,第二符號位Sf2,正數(shù)的雙符號位為00,負數(shù)的雙符號位為11。符號位參與運算,當結果的兩個符號位不相同時為溢出。溢出條件OV=Sf1⊕Sf2
。補碼加減法溢出判斷方法一:單符號位:數(shù)值位有向符號位的進位,但符號位不產(chǎn)生向更高位的進位,數(shù)值位沒有向符號位的進位,但符號位產(chǎn)生向更高位的進位方法二:雙符號位:運算結果為01
(正溢)或10(負溢),最高符號位Sf1
代表其真正的符號判斷溢出的邏輯電路如何實現(xiàn)呢?補碼加減法運算實例X=0.1011y=-0.0101[X]補
=001011,[Y]補
=111011模
4補碼
[-Y]補
=000101
001011001011+111011+0001011000110010000X+Y(不溢出)X-Y(溢出)正數(shù)加負數(shù)不會溢出符號位和數(shù)值位都產(chǎn)生進位雙符號位結果相同不是溢出正數(shù)加正數(shù)結果為負是溢出數(shù)值位有進位符號位無進位是溢出雙符號位結果不相同是溢出判斷溢出的2套方案是一個事實的2種不同的表述單符號位判斷數(shù)值位向符號位有進位但符號位無進位輸出或數(shù)值位向符號位沒有進位但符號位本身有進位輸出是溢出雙符號位判斷運算結果的2個符號位的值不相同表明有溢出(4)定點數(shù)的乘法運算原碼一位乘法:兩個原碼數(shù)相乘,其乘積的符號為相乘兩數(shù)的異或值,數(shù)值為兩數(shù)絕對值之積。補碼一位乘法:乘法直接用補碼進行,以減少轉換次數(shù)。[X]原=X0.X1X2…Xn,X0為符號[Y]原=Y0.Y1Y2…Yn,Y0為符號①原碼一位乘運算方案符號位異或,絕對值相乘原碼一位乘運算方案0.1101*0.1011110111010000+11010.10001111
解決方案:
1.每次求出部分積,不是一次總累加
2.變每次左移被乘數(shù)為右移部分積,移出的部分保存起來(保存到哪?)3.乘數(shù)放到一個移位寄存器中,判乘數(shù)每一位的值用最低的一位線路該方案用于計算機會有問題:
1.加法器只有兩個數(shù)據(jù)輸入端
2.加法器與乘運算數(shù)據(jù)位數(shù)相同
3.如何判斷乘數(shù)每一位是0或者1例:X=0.1101,Y=0.1011,求X·Y=?最終乘積原碼表示:
010001111手工運算過程:實現(xiàn)原碼一位乘法的邏輯線路圖加法器部分積被乘數(shù)乘數(shù)
F最低位加運算移位線路每位1套第i位第i位第i+1位第i-1位F/2→XF→XF*2→X移位電路最高位三選一電路被乘數(shù)作為加數(shù),用乘數(shù)最低位的值控制累加,結果右移一位存部分積寄存器,并且乘數(shù)同時右移一位。部分積的最低位移入到乘數(shù)的最高位計數(shù)器Cd原碼一位乘運算過程舉例X=0.1101Y=0.1011【例】設X=0.1101,Y=0.1011,求X·Y。其中寄存器B=X,計數(shù)器Cd=4。計算過程:00000010110011010011010001101101001101010011001001111000000000100100010011110011010100010010001111+x右移一位→+x右移一位→+0右移一位→+x右移一位→部分積A乘數(shù)C乘積高位乘積低位1(丟失)1(丟失)0(丟失)1(丟失)X?Y=0.10001111
原碼一位乘運算規(guī)則①操作數(shù)、結果用原碼表示②絕對值運算,符號單獨處理③
被乘數(shù)(B)、部分積(A)取雙符號位④
乘數(shù)末位(Cn)為判斷位,其狀態(tài)決定下步操作⑤作n次循環(huán)(累加、右移)特點絕對值運算邏輯移位用移位的次數(shù)判斷乘法是否結束原碼一位分步乘法每次將一位乘數(shù)所對應的部分積與原部分積的累加和相加,并移位。硬件:設置3個寄存器(具有右移位功能):
A:存放部分積累加和、乘積高位
B:存放被乘數(shù)
C:存放乘數(shù)、乘積低位
設置初值:
A=00.0000B=X=00.1101C=Y=.1011
一個全加器
算法流程0A、XB、YC、nCdCn=1?Cd=0?1/2(A+B)A,C1/2(A+0)A,C
Cd-1CdYYNNB0⊕C0
A0②定點補碼一位乘法原碼乘法存在的缺點是符號位需要單獨運算,并要在最后給乘積冠以正確的符號。補碼乘法是指采用操作數(shù)的補碼進行乘法運算,最后乘積仍為補碼,能自然得到乘積的正確符號。算法分析:
由已推導過的Y=-Y0+0.Y1Y2…Yn,得
[X·Y]補
=[X]補(0.Y1Y2…Yn)+[-X]補Y0符號位[X]補
=X0.X1X2…Xn[Y]補
=Y0.Y1Y2…Yn
展開為部分積的累加和形式:[X·Y]補=[X]補(0.Y1Y2…Yn)+[-X]補Y0
=[X]補(0.Y1Y2…Yn)-[X]補Y0
=[X]補(-Y0+2-1Y1+2-2Y2+…+2-nYn)=[X]補
=[X]補比較法—布斯(Booth)算法:用相鄰兩位乘數(shù)比較的結果決定加[X]補、[-X]補或0。
(-Y0+(Y1-2-1Y1)+(2-1Y2-2-2Y2)+…
+(2-(n-1)Yn-2-nYn))[(Y1-Y0)+2-1
(Y2-Y1)+2-2(Y3-Y2)+…
+2(0-Yn)-n
+2(0-Yn)-nYn+1
+2(0
-Yn)-nYn+1Yn(高位)Yn+1(低位)操作(A補為部分積累加和)00011011
1/2A補
1/2(A補+[X]補)1/2(A補+[-X]補)1/2A補(0)(1)(-1)(0)布斯算法:在乘數(shù)Yn后添加Yn+1=0。按照Yn+1,Yn相鄰兩位的三種情況,其運算規(guī)則如下:右移一位Booth算法運算規(guī)則①部分積A、被乘數(shù)B取雙符號位,符號位參加運算;②乘數(shù)C取單符號位,符號參加移位,以決定最后是否修正;③C末位設置附加位Cn+1,初值為0,CnCn+1組成判斷位,決定運算操作,作n步循環(huán);④
第n+1步(可能不用)由(Y1-Y0)決定,僅修正,不移位?!纠縓=-0.1101,Y=0.1011,求[X·Y]補。初值:A=00.0000,B=[X]補=11.0011,-B=[-X]補=00.1101,C=[Y]補=0.1011計算過程:0000000.10110初始值,最后一位補0001101Y4Y5=10+[-X]補001101000110101011右移一位000000Y3Y4=11+0000110000011010101右移一位110011Y2Y3=01+[X]補110110111011001010右移一位001101Y1Y2=10+[-X]補001000000100000101
右移一位110011Y0Y1=01+[X]補1101110001+→+→+→+→+部分積乘數(shù)YYiYi+1
說明乘積高位乘積低位[X·Y]補=1.01110001,X·Y=-0.10001111不移位(5)定點除法運算定點原碼一位除法恢復余數(shù)法:被除數(shù)(余數(shù))減去除數(shù),如果為0或者為正值時,上商為1,不恢復余數(shù);如果結果為負,上商為0,再將除數(shù)加到余數(shù)中,恢復余數(shù)。余數(shù)左移1位。加減交替法:當余數(shù)為正時,商上1,求下一位商的辦法,余數(shù)左移一位,再減去除數(shù);當余數(shù)為負時,商上0,求下一位商的辦法,余數(shù)左移一位,再加上除數(shù)。定點除法運算定點補碼一位除法(加減交替法)如果被除數(shù)與除數(shù)同號,用被除數(shù)減去除數(shù);若兩數(shù)異號,被除數(shù)加上除數(shù)。如果所得余數(shù)與除數(shù)同號商上1,否則,商上0,該商為結果的符號位。求商的數(shù)值部分。如果上次商上1,將除數(shù)左移一位后減去除數(shù);如果上次商上0,將余數(shù)左移一位后加除數(shù)。然后判斷本次操作后的余數(shù),如果余數(shù)與除數(shù)同號商上1,如果余數(shù)與除數(shù)異號商上0。如此重復執(zhí)行n-1次(設數(shù)值部分n位)。商的最后一位一般采用恒置1的辦法,并省略了最低+1的操作。此時最大的誤差為2-n?!纠吭O被除數(shù)X=0.1011,Y=0.1101,用原碼加減交替法求X/Y=?解:設置寄存器:A寄存器中開始時存放被除數(shù)的絕對值,以后將存放各次余數(shù),取雙符號位。B寄存器存放除數(shù)的絕對值,取雙符號位。C寄存器同來存放商,取單符號位。[|Y|]補=00.1101,[-|Y|]補=11.0011加減交替法處理思想:先減后判,如減后發(fā)現(xiàn)不夠減,則在下一步改作加除數(shù)操作。要點:被除數(shù)|X|<除數(shù)|Y|,取原碼尾數(shù)的絕對值相除,符號位單獨處理,商的符號為相除兩數(shù)符號的異或。被除數(shù)的位數(shù)要擴展成除數(shù)位數(shù)n的兩倍(2n位),其低位的數(shù)值部分開始時放在商寄存器中。在具體運
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東財貿職業(yè)學院《醫(yī)學統(tǒng)計學與流行病學》2023-2024學年第二學期期末試卷
- 商丘職業(yè)技術學院《稀有金屬冶金學》2023-2024學年第二學期期末試卷
- 蘇州衛(wèi)生職業(yè)技術學院《珠寶玉石材料學基礎》2023-2024學年第二學期期末試卷
- 長春醫(yī)學高等專科學?!洞髷?shù)據(jù)財務分析》2023-2024學年第二學期期末試卷
- 2025年上海松江區(qū)都城企業(yè)發(fā)展有限公司招聘筆試參考題庫附帶答案詳解
- 打造卓越酒店品牌-品牌形象與市場競爭力的策略
- 室內設計環(huán)節(jié)核心要素
- 云計算:賦能未來-理解、應用與挑戰(zhàn)
- 知識產(chǎn)權保護與創(chuàng)新-知識產(chǎn)權專家演講
- 未來出行-無人駕駛的契機-交通運輸專家的演講稿
- 《剪映專業(yè)版:短視頻創(chuàng)作案例教程(全彩慕課版)》 課件 第5章 創(chuàng)作城市宣傳片
- 手術分級目錄(2023年修訂)
- 期中 (試題) -2024-2025學年人教PEP版(2024)英語三年級上冊
- 深圳市業(yè)主共有資金監(jiān)督管理辦法
- 霧化吸入療法合理用藥專家共識(2024版)解讀
- 2024年四川省巴中市中考文科綜合試卷(含答案解析)
- 2024年全國職業(yè)院校技能大賽中職組(法律實務賽項)考試題庫-上(單選題)
- 欠款抵車的協(xié)議書范本
- 設備購買合同模板示例
- 抖音火花合同電子版獲取教程
- 2023-2024學年人教版八年級下冊數(shù)學 期末復習試題
評論
0/150
提交評論