計算機組成原理:2數(shù)據(jù)的表示和運算-2_第1頁
計算機組成原理:2數(shù)據(jù)的表示和運算-2_第2頁
計算機組成原理:2數(shù)據(jù)的表示和運算-2_第3頁
計算機組成原理:2數(shù)據(jù)的表示和運算-2_第4頁
計算機組成原理:2數(shù)據(jù)的表示和運算-2_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第2章 數(shù)據(jù)的表示和運算主要內(nèi)容:(一)數(shù)制與編碼 1.進位計數(shù)制及其相互轉(zhuǎn)換 2.真值和機器數(shù) 3.BCD碼 4.字符與字符串 5.校驗碼 (二)定點數(shù)的表示和運算 1.定點數(shù)的表示 :無符號數(shù)的表示;有符號數(shù)的表示。 2.定點數(shù)的運算 :定點數(shù)的位移運算;原碼定點數(shù)的加/減運算;補碼定點數(shù)的加/減運算;定點數(shù)的乘/除運算;溢出概念和判別方法。 (三)浮點數(shù)的表示和運算 1.浮點數(shù)的表示 :浮點數(shù)的表示范圍;IEEE754標準 2.浮點數(shù)的加/減運算 (四)算術(shù)邏輯單元ALU 1.串行加法器和并行加法器 2.算術(shù)邏輯單元ALU的功能和機構(gòu) 2.2 定點數(shù)的表示和運算(1)無符號數(shù)的表示 機器

2、字長的全部位數(shù)均用來表示數(shù)值的大小,相當于數(shù)的絕對值。對于字長為n位的無符號數(shù)的表示范圍為:0 2n-1。(2)帶符號數(shù)的表示 帶符號數(shù)是指在計算機中將數(shù)的符號數(shù)碼化。在計算機中,一般規(guī)定二進制的最高位為符號位,最高位為“0”表示該數(shù)為正,為“1”表示該數(shù)為負。這種在機器中使用符號位也被數(shù)碼化的數(shù)稱為機器數(shù)。根據(jù)符號位和數(shù)值位的編碼方法不同,機器數(shù)分為原碼、補碼和反碼等。2.2.1 定點數(shù)的表示 X = X = X =定點小數(shù)表示: Ns N1 N2 Nn原 X 1 X=1+|X| -1 X 0反 X(2 - 2 ) |X|-n0 X 1-1 X 0補 X 2 + X=2-|X|Mod ( 2

3、 - 2 )0 X 1-1 X 0Mod 20 X 1-n(純小數(shù)) 原碼,反碼,補碼的定義 實例: X1 = 0.1011 -0.1011 0.0000 X 原 = 0 1011 1 1011 0 0000 1 0000 說明:原碼是符號位加數(shù)的絕對值,符號 0正 1負 原碼零有兩個編碼,+0 和 -0 的編碼不同 原碼難以用于加減運算,但乘除方便定點小數(shù)表示: Ns N1 N2 Nn X 1 X=1+|X| -1 X 00 X 1(純小數(shù)) 原碼的定義與說明定義: X 原 =實例: X1 = 0.1011 -0.1011 0.0000 X 反 = 0 1011 1 0100 0 0000

4、1 1111 結(jié)論:反碼負數(shù)為符號位跟每位的反, 符號 0正 1負 反碼零有二個編碼,分 +0 和 -0 反碼難以用于算術(shù)運算,加減有循環(huán)進位問題定點小數(shù)表示: Ns N1 N2 Nn(純小數(shù)) 反碼的定義與說明定義: X 反 = X(2 - 2 ) |X|-n0 X 1-1 X 0Mod ( 2 - 2 )-n實例: X1 = 0.1011 -0.1011 0.0000 X 補 = 0 1011 1 0101 0 0000說明:補碼最高一位是符號位,符號 0 正 1 負 補碼表示為:2符號位 + 數(shù)的真值 補碼零只有一個編碼,故能表示 -1(10000) 補碼能很好地用于加減(乘除)運算定點

5、小數(shù)表示: Ns N1 N2 Nn X 2 + X=2-|X| -1 X 00 X 1(純小數(shù)) 補碼的定義與說明定義: X 補 =MOD 2補碼的一些補充說明由X補(X0 X1X2Xn)求真值 XX補 = 2X0 + X X = X補 - 2X0 = X0 X1X2Xn - 2X0 = -X0 + (-X0+ X0 X-1X-2X-n) = -X0 + 0.X1X2Xn負數(shù)的 X補與X反的關(guān)系由X反 = (2 2-n) + X, X補= 2 + X可得到: X補 = X反 + 2-n補碼的一些補充說明得到一個數(shù)補碼表示的簡便辦法 當X0時,X補的符號位取 0,數(shù)值位取X的各數(shù)值位上的值,此時

6、有X補 = X 當X0時,X補的符號位取 1,將 X 的各數(shù)值位取反,再在最低位加1,以得到 X補的各數(shù)值位上的值 (見負數(shù) X補 與 X反 的關(guān)系)X原與X補的相互轉(zhuǎn)換簡便方法 從X原求X補時,對正數(shù)或零,有X補=X原,對負數(shù)則符號位不變,各數(shù)值位變反后再在最低位執(zhí)行加 1 操作 由X補求 X原時,對負數(shù)仍是符號位不變,各數(shù)值位變反后再在最低位執(zhí)行加 1 操作已知 y補如何簡單求- y補 y補 = 0 y1 y2 yny = 0. y1 y2 yny = 0. y1 y2 yn y補 = 1 y1 y2 yn + 2-n y補 = 1 y1 y2 yn y原 = 1 y1 y2 yn + 2

7、-n y = (0. y1 y2 yn + 2-n) y = 0. y1 y2 yn + 2-n y補 = 0 y1 y2 yn + 2-n每位取反,即得 y補y補連同符號位在內(nèi),末位加 1每位取反,即得 y補y補連同符號位在內(nèi),末位加 1整數(shù)的編碼表示整數(shù)的 原碼 反碼 補碼 表示與小數(shù)的三種表示基本相同差別僅表現(xiàn)在小數(shù)點的位置可以認為整數(shù)的小數(shù)點在最低數(shù)值位的右側(cè)因此整數(shù)的模與整數(shù)位數(shù)有關(guān)講課中不大用整數(shù)講 原 反 補 碼定義 例如:整數(shù)6位編碼 ( 1 位符號位,5 位數(shù)值位) X = +01110 X原= 0 01110 X補= 0 01110 X = - 01110 X原= 1 01

8、110 X補= 1 10010 x 為真值n 為整數(shù)的位數(shù)x原 = x 2n x 02n x 0 x 2nx補 = x 2n x 02n+1 + x 0 x 2n(mod 2n+1)x反 = x 2n x 0( 2n+1 1) + x 0 x 2n(mod 2n+1 1)整數(shù)的編碼表示000000000000000100000010011111111000000010000001111111011111111011111111二進制代碼 無符號數(shù)對應(yīng)的真值原碼對應(yīng) 的真值補碼對應(yīng) 的真值反碼對應(yīng) 的真值128129012127253254255-128-127-3-2-1 0+1+2+127-

9、127-126-2-1-0+0+1+2+127-0-1-125-126-127+0+1+2+127設(shè)機器數(shù)字長為 8 位 (含一位符號位),表示整數(shù)時,每個編碼分別代表無符號數(shù)、原碼、補碼和反碼的真值各為多少 ?原、反、補碼表示小結(jié)正數(shù)的 原碼、反碼、補碼表示均相同,符號位為 0,數(shù)值位同數(shù)的真值。零的原碼和反碼均有 2個編碼,補碼只 1個碼負數(shù)的 原碼、反碼、補碼表示均不同, 符號位為 1,數(shù)值位:原碼為數(shù)的絕對值 反碼為每一位均取反碼 補碼為反碼再在最低位+1由 X補 求 -X補:每一位取反后再在最低位+1整數(shù)的移碼表示 (用于浮點數(shù)階碼)x移 = 2n + x(2nx 2n)移碼定義x

10、為真值,n 為 整數(shù)的位數(shù)移碼在數(shù)軸上的表示x移碼2n+112n2n 12n00真值例如:x = 10100 x移 = 25 + 10100=100000+10100= 110100 x = 10100 x移 = 25 10100=100000-10100= 001100- 1 0 0 0 0 0- 1 1 1 1 1- 1 1 1 1 0- 0 0 0 0 1 0 0 0 0 0+ 0 0 0 0 1+ 0 0 0 1 0+ 1 1 1 1 0+ 1 1 1 1 1真值 x ( n = 5 )x補x移x移對應(yīng)的十進制整數(shù)真值、補碼和移碼的對照表0123132333462630 0 0 0 0

11、 00 0 0 0 1 00 0 0 0 0 10 1 1 1 1 11 0 0 0 0 01 0 0 0 0 11 0 0 0 1 01 1 1 1 1 01 1 1 1 1 10 1 1 1 1 10 1 1 1 1 00 0 0 0 1 00 0 0 0 0 10 0 0 0 0 01 1 1 1 1 11 0 0 0 1 01 0 0 0 0 11 0 0 0 0 0 0 0 0 0 0+ 1 1 1 1 10 0 0 0 0 01 1 1 1 1 10 0 0 0 0 01 0 0 0 0 02.2.2 定點數(shù)的運算(1)定點數(shù)的移位運算移位是一種常用的操作,例如,在乘法中需要左移,

12、在除法中需要右移,在代碼處理中也經(jīng)常需要移位操作。移位可分為算術(shù)移位和邏輯移位,有左移和右移之分??梢詫拇嫫骰虼鎯卧械臄?shù)據(jù)進行移位。一次可以只移一位,也可以按指令中規(guī)定的次數(shù)移若干位。 算術(shù)移位:移位的對象是數(shù)值型數(shù)據(jù),在移位后會發(fā)生數(shù)值大小的變化。對于二進制數(shù),左移,絕對值擴大;右移,絕對值縮小。算術(shù)移位規(guī)則:符號位不變 邏輯移位:包括邏輯左移、邏輯右移、循環(huán)左移和循環(huán)右移等。邏輯移位使代碼序列進行循環(huán)移位或非循環(huán)移位,參與移位的對象被視為純邏輯意義上的代碼組合,邏輯移位只是使數(shù)碼位置發(fā)生變化,沒有正、負性質(zhì),也沒有數(shù)值大小問題。 算術(shù)移位和邏輯移位的區(qū)別:算術(shù)移位:有符號數(shù)移位邏輯移

13、位:無符號數(shù)移位【例】 選擇題:數(shù)據(jù)每左移1 位相當于原數(shù)乘以2 , 為防止左移操作造成溢出,補碼左移的前提條件是其原最高有效位( )。 (當運算結(jié)果超出機器數(shù)所能表示的范圍時,稱為溢出。)A為0 B為1 C與原符號位相同 D與原符號位相異 【分析】當最高有效位和符號位不一致時,如果左移1 位,將會發(fā)生溢出?!練w納總結(jié)】算術(shù)移位是帶符號數(shù)的移位,移位前后符號位不應(yīng)該發(fā)生變化。如果最高有效位和符號位不一致,則左移1 位,符號位將發(fā)生變化。答案: C 【例】已知X/2補=C6H,計算機的字長為8位二進制編碼, X補=?解: X補= X/2補2 , C6H=11000110B,左移1位變成10001

14、100B=8CHX補=8CH(2)原碼定點數(shù)的加/減運算對原碼表示的兩個操作數(shù)進行加減運算時,計算機的實際操作是加還是減,不僅取決指令中的操作碼,還取決于兩個操作數(shù)的符號。而且運算結(jié)果的符號判斷也較復(fù)雜。例如,加法指令指示做(+X)+(-Y),由于一操作數(shù)為負,實際操作是做減法(+X)-(+Y),結(jié)果符號與絕對值大的符號相同。同理,在減法指令中指示做 (+X)-(-Y),實際操作做加法(+X)+(+Y),結(jié)果與被減數(shù)符號相同。由于原碼加減法比較繁瑣,相應(yīng)地需要由復(fù)雜的硬件邏輯才能實現(xiàn),因此在計算機中很少被采用。(3)補碼定點數(shù)的加/減運算 加法 整數(shù) X + Y補= X補 + Y補 (mod

15、2n+1)小數(shù) X + Y補= X補 + Y補 (mod 2) 減法 整數(shù) XY補= X +(- Y )補= X補+ -Y補 (mod 2n+1)小數(shù) XY補= X +(- Y )補= X補+ -Y補 (mod 2)無需符號判定,數(shù)值位連同符號位一起相加,符號位產(chǎn)生的進位自然丟掉。關(guān)鍵是由Y補 求-Y補 , -Y補= 對 Y補 逐位取反再在最低位加 1。(包括符號位)實現(xiàn)補碼加減運算的邏輯電路X X+YX X-Y / 加減FXFs 加法器 ( ALU) 目的 寄存器源 寄存器 選通門二選通門選通門F1XYFYXF010 1F /YFsOVRZC累加器/Y00000111實現(xiàn)補碼加運算的執(zhí)行過程

16、X X+Y完成加運算,需要把被加數(shù)和加數(shù)送ALU的輸入端,運算結(jié)果要接收到累加器,需要給出命令: FXFYXFFs 加法器 0101011010110001 選通門二選一選通門XYFsOVRZC被加數(shù)/和/Y加數(shù)CP10110001 0101011000000111CP命令建立數(shù)據(jù)傳送 加運算存結(jié)果命令建立00000111數(shù)據(jù)傳送 命令建立實現(xiàn)補碼減運算的邏輯電路X XY完成減運算,需要把被減數(shù)和減數(shù)送ALU的輸入端,運算結(jié)果要接收到累加器,需要給出命令: /,F(xiàn)1FXF/YXFFs 加法器 0101011011110001 選通門二選一選通門XYFsOVRZC被減數(shù)/差/Y減數(shù)CPCP命令建

17、立數(shù)據(jù)傳送 加運算存結(jié)果命令建立數(shù)據(jù)傳送 命令建立F1100001110 01100101 01010110 0110101 (4)溢出概念和判別方法當運算結(jié)果超出機器數(shù)所能表示的范圍時,稱為溢出。兩個異號數(shù)相加或兩個同號數(shù)相減,其結(jié)果是不會溢出的。僅當兩個同號數(shù)相加或者兩個異號數(shù)相減時,才有可能發(fā)生溢出,一旦溢出,運算結(jié)果就不正確了,因此必須將溢出的情況檢查出來。判別方法有三種: 當符號相同的兩數(shù)相加時,如果結(jié)果的符號與加數(shù)(或被加數(shù))不相同,則為溢出。 當任意符號兩數(shù)相加時,如果C=Cf,運算結(jié)果正確,其中C為數(shù)值最高位的進位,Cf為符號位的進位。如果CCf ,則為溢出,所以溢出條件=CC

18、f 。 采用雙符號fs2fs1,正數(shù)的雙符號位為00,負數(shù)的雙符號位為11。符號位參與運算,當結(jié)果的兩個符號位不相同時為溢出。所以溢出條件= fs2fs1 。補碼加減法溢出判斷方法之一:單符號位,正 + 正 得負 或 負 + 負 得正方法之二:數(shù)值位有向符號位的進位,但符號位不產(chǎn)生向更高位的進位,數(shù)值位沒有向符號位的進位,但符號位產(chǎn)生向更高位的進位方法之三:雙符號位的結(jié)果為 01 或 10,最高符號位 代表其 真正的符號補碼加減法運算實例X = 0.1011 y = -0.0101X補 = 00 1011, Y補 = 11 1011 補碼 -Y補 = 00 0101 00 1011 00 10

19、11+11 1011 + 00 0101100 0110 01 0000X+Y (不溢出) X-Y (溢出)正數(shù)加負數(shù)不會溢出符號位和數(shù)值位都產(chǎn)生進位雙符號位結(jié)果相同不是溢出正數(shù)加正數(shù)結(jié)果為負是溢出數(shù)值位有進位符號位無進位是溢出雙符號位結(jié)果不相同是溢出判斷溢出的 3套方案是一個事實的 3種不同的表述單符號位判斷正加正得負或負加負得正表明溢出符號位與最高數(shù)值位判斷數(shù)值位向符號位有進位但符號位無進位輸出或數(shù)值位向符號位沒有進位但符號位本身有進位輸出是溢出雙符號位判斷運算結(jié)果的 2 個符號位的值不相同表明有溢出單選題:(2009年)一個 C 語言機器在一臺32位機器上運行。程序中定義了三個變量 x,

20、y和z,其中x和z是int型,y 為 short型。當 x = 127,y = -9 時,執(zhí)行賦值語句 z = x+y 后,x,y和z的值分別是( )。Ax = 0000007FH, y = FFF9H, z = 00000076HBx = 0000007FH, y = FFF9H, z = FFFF0076HCx = 0000007FH, y = FFF7H, z = FFFF0076HDx = 0000007FH, y = FFF7H, z = 00000076H分析: short型數(shù)據(jù)為16位;int型為32位(從選擇項中也可知)。 對于y=-9,在機器中用補碼表示為FFF7H(關(guān)鍵),

21、計算 z=x+y=0000007FH+FFFFFFF7H(符號擴展為32位)= 00000076H技巧:可用排除法,得到 =-9的補碼為FFF7H 可排除A和B,再由127+(-9)=118可知z為正數(shù),即可排除C,再驗證D中z=76H=118,確認選D。考查知識點: 16 進制負數(shù)的補碼表示,符號擴展,補碼運算。答案: D真題解析P47 二.4 題 對于 固定字長的數(shù),右移將舍去低位部分。兩種常用的舍入規(guī)則:0舍1入法:末位恒置1法:(5)舍入處理(6)定點數(shù)的乘/除運算定點乘法運算原碼一位乘法 :兩個原碼數(shù)相乘,其乘積的符號為相乘兩數(shù)的異或值,數(shù)值為兩數(shù)絕對值之積。定點補碼一位乘法:有的機

22、器為方便加減法運算,數(shù)據(jù)以補碼形式存放。校正法和比較法校正法:乘法直接用補碼進行,以減少轉(zhuǎn)換次數(shù)。具體規(guī)則如下:XY補=X補( 0. Y1Y2 Yn )+-X補Y0當Y為負時,求XY補,需要用X補乘上Y補的數(shù)值位,再加上-X補該算法需要區(qū)分乘數(shù)的符號,不方便。比較法布斯(Booth)法:用相鄰兩位乘數(shù)比較的結(jié)果決定加X補、 X補或0。 布斯公式:在乘數(shù)Yn后添加Yn+1=0。按照Yn+1 ,Yn相鄰兩位的三種情況,其運算規(guī)則如下:Yn+1 Yn =00或11,部分積加0,右移1位;Yn+1 Yn =10 ,部分積加X補,右移1位; Yn+1 Yn =01 ,部分積加X補,右移1位最后一步不移位

23、。X*Y原 = ( X + Y) (X* Y ) 例如: X = 0.1101 Y = 0.1011 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 10 . 1 0 0 0 1 1 1 1 手工運算過程最終乘積原碼表示: 0 1 0 0 0 1 1 1 1解決方案: 1. 每次求出部分積,不是一次總累加 2. 變每次左移被乘數(shù)為右移部分積,移出的部分保存起來 3. 乘數(shù)放到一個移位寄存器中,用最低的一位來控制相加數(shù)(取被乘數(shù)或0)。符號異或,絕對值相乘該方案用于計算機會有問題: 1. 加法器只有兩個數(shù)據(jù)輸入端 2. 加法器與乘運

24、算數(shù)據(jù)位數(shù)相同 3. 如何判斷乘數(shù)每一位是 0 或者 1原碼乘運算-手算方案原碼一位乘法乘法開始時,A寄存器被清為零,作為初始部分積。被乘數(shù)放在B寄存器中,乘數(shù)放在C寄存器中。實現(xiàn)部分積與被乘數(shù)相加是在ALU中完成的。每步運算,部分積最低一位的值將右移入C寄存器的最高數(shù)值位,使相乘之積的低位部分保存進C寄存器中,原來的乘數(shù)在逐位右移過程中丟失掉。寄存器A最終存放為乘積的高n位,寄存器C最終存放乘積的低n位。另外還需要一個計數(shù)器Cd用來控制逐位相乘的次數(shù),它的初值存放為乘數(shù)的位數(shù)值,在計算的過程中每完成一位乘計算就執(zhí)行減1操作,待計數(shù)到0時,給出結(jié)束乘運算的控制信號。實現(xiàn)原碼一位乘法的邏輯線路圖

25、 加 法 器 部 分 積 被 乘 數(shù) 乘 數(shù) F最低位加運算移位線路每位1套最高位被乘數(shù)作為加數(shù),用乘數(shù)最低位的值控制累加,結(jié)果右移一位存部分積寄存器,并且乘數(shù)同時右移一位。部分積的最低位移入到乘數(shù)的最高位計數(shù)器 CdABC原碼一位乘運算過程舉例X = 0.1101 Y = 0.1011【例】設(shè)X=0.8125,Y=0.6875,用原碼1位乘的方法,求XY。 其中寄存器B=X ,計數(shù)器Cd=4。計算過程:0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 10 0 0 1 1 0 1 1 0 10 0 1 1 0 10 1 0 0 1 10 0 1 0 0 1

26、1 1 1 00 0 0 0 0 00 0 1 0 0 10 0 0 1 0 0 1 1 1 10 0 1 1 0 10 1 0 0 0 10 0 1 0 0 0 1 1 1 1 +x右移一位+x右移一位+0右移一位+x右移一位部分積 A 乘數(shù) C 乘積高位 乘積低位1(丟失)1(丟失)0(丟失)1(丟失)XY=0.10001111X原=0.1101, Y原=0.1011,原碼一位乘運算規(guī)則推導(dǎo)以小數(shù)為例設(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.x1x

27、2 xn 為 x 的絕對值 y*= 0.y1y2 yn 為 y 的絕對值 乘積的符號位單獨處理 x0 y0數(shù)值部分為絕對值相乘 x* y* 原碼一位乘運算規(guī)則 操作數(shù)、結(jié)果用原碼表示 絕對值運算,符號單獨處理 被乘數(shù)(B)、部分積(A)取雙符號位 乘數(shù)末位(Cn)為判斷位,其狀態(tài)決定下步操作 作n次循環(huán)(累加、右移)特點絕對值運算邏輯移位用移位的次數(shù)判斷乘法是否結(jié)束原碼一位分步乘法每次將一位乘數(shù)所對應(yīng)的部分積與原部分積的累加和相加,并移位。硬件:設(shè)置3個寄存器(具有右移位功能): A:存放部分積累加和、乘積高位 B:存放被乘數(shù) C:存放乘數(shù)、乘積低位 設(shè)置初值: A = 00.0000 B =

28、 X = 00.1101 C = Y = .1011 一個全加器 算法流程0 A、X B、Y C、0 CRCn = 1 ?CR = n ?1/2(A+B) A,C1/2(A+0) A,C CR + 1 CRYYNN Sx + Sy SA定點補碼一位乘法 原碼乘法存在的缺點是符號位需要單獨運算,并要在最后給乘積冠以正確的符號。補碼乘法是指采用操作數(shù)的補碼進行乘法運算,最后乘積仍為補碼,能自然得到乘積的正確符號。算法分析:校正法 X補 = X0.X1X2Xn Y為正:Y補 = 0.Y1Y2Yn (XY)補 = X補(0.Y1Y2Yn) Y為負:Y補 = 1.Y1Y2Yn由Y = -Y0 + 0.Y

29、1Y2Yn,得 (XY)補 = X補(0.Y1Y2Yn)+(-X)補 Y符號任意: (XY)補 = X補(0.Y1Y2Yn)+(-X)補Y0符號位算法分析:校正法 X補 = X0.X1X2Xn Y為正:Y補 = 0.Y1Y2Yn (XY)補 = X補(0.Y1Y2Yn) Y為負:Y補 = 1.Y1Y2Yn由Y = -Y0 + 0.Y1Y2Yn,得 (XY)補 = X補(0.Y1Y2Yn)+(-X)補 Y符號任意: (XY)補 = X補(0.Y1Y2Yn)+(-X)補Y0符號位校正法的過程是先按原碼乘法那樣直接乘,最后再根據(jù)乘數(shù)符號進行校正。其算法規(guī)則如下:不管被乘數(shù)X補的符號如何,只要乘數(shù)Y補

30、為正,則可像原碼乘法一樣進行運算,其結(jié)果不需校正。如果乘數(shù)Y補為負,則先按原碼乘法運算,結(jié)果再加上一個校正量-X補。 比較法算法 (Booth算法) :Yi(高位) Yi+1(低位) 操作(A補為部分積累加和) 0 00 11 01 1 1/2A補 1/2(A補+X補) 1/2(A補-X補) 1/2A補比較法 Booth算法:用相鄰兩位乘數(shù)比較的結(jié)果決定 +X補、-X補或+0。Booth算法運算規(guī)則部分積A、被乘數(shù)B取雙符號位,符號位參加運算; 乘數(shù)C取單符號位,符號參加移位,以決定最后是否修正; C末位設(shè)置附加位Cn+1,初值為0,CnCn+1組成判斷位,決定運算操作,作n步循環(huán); 第n+1

31、,僅修正,不移位。注意,最后一步不移位,因為這一步是用來處理符號位的?!纠縓=-0.1101,Y=0.1011,求XY補。初值:A=00.0000,B=X補=11.0011, -B=-X補=00.1101,C =Y補=0.1011計算過程:0 0 0 0 0 0 0. 1 0 1 1 0 初始值,最后一位補0 0 0 1 1 0 1 Y4Y5=10 +-X補0 0 1 1 0 10 0 0 1 1 0 1 0 1 0 1 1 右移一位0 0 0 0 0 0 Y3Y4=11 +00 0 0 1 1 00 0 0 0 1 1 0 1 0 1 0 1 右移一位1 1 0 0 1 1 Y2Y3=01 +X補1 1 0 1 1 01 1 1 0 1 1 0 0 1 0 1 0 右移一位 0 0 1 1 0 1 Y1Y2=10 +-X補0 0 1 0 0 00 0 0 1 0 0 0 0 0 1 0 1 右移一位1 1 0 0 1 1 Y0Y1=01 +X補1 1 0 1 1 1 0 0 0 1+部分積 乘數(shù)Y Yi Yi+1 說明乘積高位 乘積低位XY補=1.01110001, XY= - 0.10001111不移位 定點除法運算定點原碼一位除法恢復(fù)余數(shù)法:被除數(shù)(余數(shù))減去除數(shù),如果為0或者為正值時,上商為1,不恢復(fù)余數(shù);如果

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論