![計算機(jī)組成原理:2數(shù)據(jù)的表示和運(yùn)算-2_第1頁](http://file4.renrendoc.com/view/e9302f9c4ff1cf66633eb9e51aa4a042/e9302f9c4ff1cf66633eb9e51aa4a0421.gif)
![計算機(jī)組成原理:2數(shù)據(jù)的表示和運(yùn)算-2_第2頁](http://file4.renrendoc.com/view/e9302f9c4ff1cf66633eb9e51aa4a042/e9302f9c4ff1cf66633eb9e51aa4a0422.gif)
![計算機(jī)組成原理:2數(shù)據(jù)的表示和運(yùn)算-2_第3頁](http://file4.renrendoc.com/view/e9302f9c4ff1cf66633eb9e51aa4a042/e9302f9c4ff1cf66633eb9e51aa4a0423.gif)
![計算機(jī)組成原理:2數(shù)據(jù)的表示和運(yùn)算-2_第4頁](http://file4.renrendoc.com/view/e9302f9c4ff1cf66633eb9e51aa4a042/e9302f9c4ff1cf66633eb9e51aa4a0424.gif)
![計算機(jī)組成原理:2數(shù)據(jù)的表示和運(yùn)算-2_第5頁](http://file4.renrendoc.com/view/e9302f9c4ff1cf66633eb9e51aa4a042/e9302f9c4ff1cf66633eb9e51aa4a0425.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第2章 數(shù)據(jù)的表示和運(yùn)算主要內(nèi)容:(一)數(shù)制與編碼 1.進(jìn)位計數(shù)制及其相互轉(zhuǎn)換 2.真值和機(jī)器數(shù) 3.BCD碼 4.字符與字符串 5.校驗碼 (二)定點數(shù)的表示和運(yùn)算 1.定點數(shù)的表示 :無符號數(shù)的表示;有符號數(shù)的表示。 2.定點數(shù)的運(yùn)算 :定點數(shù)的位移運(yùn)算;原碼定點數(shù)的加/減運(yùn)算;補(bǔ)碼定點數(shù)的加/減運(yùn)算;定點數(shù)的乘/除運(yùn)算;溢出概念和判別方法。 (三)浮點數(shù)的表示和運(yùn)算 1.浮點數(shù)的表示 :浮點數(shù)的表示范圍;IEEE754標(biāo)準(zhǔn) 2.浮點數(shù)的加/減運(yùn)算 (四)算術(shù)邏輯單元ALU 1.串行加法器和并行加法器 2.算術(shù)邏輯單元ALU的功能和機(jī)構(gòu) 2.2 定點數(shù)的表示和運(yùn)算(1)無符號數(shù)的表示 機(jī)器
2、字長的全部位數(shù)均用來表示數(shù)值的大小,相當(dāng)于數(shù)的絕對值。對于字長為n位的無符號數(shù)的表示范圍為:0 2n-1。(2)帶符號數(shù)的表示 帶符號數(shù)是指在計算機(jī)中將數(shù)的符號數(shù)碼化。在計算機(jī)中,一般規(guī)定二進(jìn)制的最高位為符號位,最高位為“0”表示該數(shù)為正,為“1”表示該數(shù)為負(fù)。這種在機(jī)器中使用符號位也被數(shù)碼化的數(shù)稱為機(jī)器數(shù)。根據(jù)符號位和數(shù)值位的編碼方法不同,機(jī)器數(shù)分為原碼、補(bǔ)碼和反碼等。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補(bǔ) X 2 + X=2-|X|Mod ( 2
3、 - 2 )0 X 1-1 X 0Mod 20 X 1-n(純小數(shù)) 原碼,反碼,補(bǔ)碼的定義 實例: X1 = 0.1011 -0.1011 0.0000 X 原 = 0 1011 1 1011 0 0000 1 0000 說明:原碼是符號位加數(shù)的絕對值,符號 0正 1負(fù) 原碼零有兩個編碼,+0 和 -0 的編碼不同 原碼難以用于加減運(yùn)算,但乘除方便定點小數(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é)論:反碼負(fù)數(shù)為符號位跟每位的反, 符號 0正 1負(fù) 反碼零有二個編碼,分 +0 和 -0 反碼難以用于算術(shù)運(yùn)算,加減有循環(huán)進(jì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 補(bǔ) = 0 1011 1 0101 0 0000說明:補(bǔ)碼最高一位是符號位,符號 0 正 1 負(fù) 補(bǔ)碼表示為:2符號位 + 數(shù)的真值 補(bǔ)碼零只有一個編碼,故能表示 -1(10000) 補(bǔ)碼能很好地用于加減(乘除)運(yùn)算定點
5、小數(shù)表示: Ns N1 N2 Nn X 2 + X=2-|X| -1 X 00 X 1(純小數(shù)) 補(bǔ)碼的定義與說明定義: X 補(bǔ) =MOD 2補(bǔ)碼的一些補(bǔ)充說明由X補(bǔ)(X0 X1X2Xn)求真值 XX補(bǔ) = 2X0 + X X = X補(bǔ) - 2X0 = X0 X1X2Xn - 2X0 = -X0 + (-X0+ X0 X-1X-2X-n) = -X0 + 0.X1X2Xn負(fù)數(shù)的 X補(bǔ)與X反的關(guān)系由X反 = (2 2-n) + X, X補(bǔ)= 2 + X可得到: X補(bǔ) = X反 + 2-n補(bǔ)碼的一些補(bǔ)充說明得到一個數(shù)補(bǔ)碼表示的簡便辦法 當(dāng)X0時,X補(bǔ)的符號位取 0,數(shù)值位取X的各數(shù)值位上的值,此時
6、有X補(bǔ) = X 當(dāng)X0時,X補(bǔ)的符號位取 1,將 X 的各數(shù)值位取反,再在最低位加1,以得到 X補(bǔ)的各數(shù)值位上的值 (見負(fù)數(shù) X補(bǔ) 與 X反 的關(guān)系)X原與X補(bǔ)的相互轉(zhuǎn)換簡便方法 從X原求X補(bǔ)時,對正數(shù)或零,有X補(bǔ)=X原,對負(fù)數(shù)則符號位不變,各數(shù)值位變反后再在最低位執(zhí)行加 1 操作 由X補(bǔ)求 X原時,對負(fù)數(shù)仍是符號位不變,各數(shù)值位變反后再在最低位執(zhí)行加 1 操作已知 y補(bǔ)如何簡單求- y補(bǔ) y補(bǔ) = 0 y1 y2 yny = 0. y1 y2 yny = 0. y1 y2 yn y補(bǔ) = 1 y1 y2 yn + 2-n y補(bǔ) = 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補(bǔ) = 0 y1 y2 yn + 2-n每位取反,即得 y補(bǔ)y補(bǔ)連同符號位在內(nèi),末位加 1每位取反,即得 y補(bǔ)y補(bǔ)連同符號位在內(nèi),末位加 1整數(shù)的編碼表示整數(shù)的 原碼 反碼 補(bǔ)碼 表示與小數(shù)的三種表示基本相同差別僅表現(xiàn)在小數(shù)點的位置可以認(rèn)為整數(shù)的小數(shù)點在最低數(shù)值位的右側(cè)因此整數(shù)的模與整數(shù)位數(shù)有關(guān)講課中不大用整數(shù)講 原 反 補(bǔ) 碼定義 例如:整數(shù)6位編碼 ( 1 位符號位,5 位數(shù)值位) X = +01110 X原= 0 01110 X補(bǔ)= 0 01110 X = - 01110 X原= 1 01
8、110 X補(bǔ)= 1 10010 x 為真值n 為整數(shù)的位數(shù)x原 = x 2n x 02n x 0 x 2nx補(bǔ) = 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二進(jìn)制代碼 無符號數(shù)對應(yīng)的真值原碼對應(yīng) 的真值補(bǔ)碼對應(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è)機(jī)器數(shù)字長為 8 位 (含一位符號位),表示整數(shù)時,每個編碼分別代表無符號數(shù)、原碼、補(bǔ)碼和反碼的真值各為多少 ?原、反、補(bǔ)碼表示小結(jié)正數(shù)的 原碼、反碼、補(bǔ)碼表示均相同,符號位為 0,數(shù)值位同數(shù)的真值。零的原碼和反碼均有 2個編碼,補(bǔ)碼只 1個碼負(fù)數(shù)的 原碼、反碼、補(bǔ)碼表示均不同, 符號位為 1,數(shù)值位:原碼為數(shù)的絕對值 反碼為每一位均取反碼 補(bǔ)碼為反碼再在最低位+1由 X補(bǔ) 求 -X補(bǔ):每一位取反后再在最低位+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補(bǔ)x移x移對應(yīng)的十進(jìn)制整數(shù)真值、補(bǔ)碼和移碼的對照表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ù)的運(yùn)算(1)定點數(shù)的移位運(yùn)算移位是一種常用的操作,例如,在乘法中需要左移,
12、在除法中需要右移,在代碼處理中也經(jīng)常需要移位操作。移位可分為算術(shù)移位和邏輯移位,有左移和右移之分??梢詫拇嫫骰虼鎯卧械臄?shù)據(jù)進(jìn)行移位。一次可以只移一位,也可以按指令中規(guī)定的次數(shù)移若干位。 算術(shù)移位:移位的對象是數(shù)值型數(shù)據(jù),在移位后會發(fā)生數(shù)值大小的變化。對于二進(jìn)制數(shù),左移,絕對值擴(kuò)大;右移,絕對值縮小。算術(shù)移位規(guī)則:符號位不變 邏輯移位:包括邏輯左移、邏輯右移、循環(huán)左移和循環(huán)右移等。邏輯移位使代碼序列進(jìn)行循環(huán)移位或非循環(huán)移位,參與移位的對象被視為純邏輯意義上的代碼組合,邏輯移位只是使數(shù)碼位置發(fā)生變化,沒有正、負(fù)性質(zhì),也沒有數(shù)值大小問題。 算術(shù)移位和邏輯移位的區(qū)別:算術(shù)移位:有符號數(shù)移位邏輯移
13、位:無符號數(shù)移位【例】 選擇題:數(shù)據(jù)每左移1 位相當(dāng)于原數(shù)乘以2 , 為防止左移操作造成溢出,補(bǔ)碼左移的前提條件是其原最高有效位( )。 (當(dāng)運(yùn)算結(jié)果超出機(jī)器數(shù)所能表示的范圍時,稱為溢出。)A為0 B為1 C與原符號位相同 D與原符號位相異 【分析】當(dāng)最高有效位和符號位不一致時,如果左移1 位,將會發(fā)生溢出。【歸納總結(jié)】算術(shù)移位是帶符號數(shù)的移位,移位前后符號位不應(yīng)該發(fā)生變化。如果最高有效位和符號位不一致,則左移1 位,符號位將發(fā)生變化。答案: C 【例】已知X/2補(bǔ)=C6H,計算機(jī)的字長為8位二進(jìn)制編碼, X補(bǔ)=?解: X補(bǔ)= X/2補(bǔ)2 , C6H=11000110B,左移1位變成10001
14、100B=8CHX補(bǔ)=8CH(2)原碼定點數(shù)的加/減運(yùn)算對原碼表示的兩個操作數(shù)進(jìn)行加減運(yùn)算時,計算機(jī)的實際操作是加還是減,不僅取決指令中的操作碼,還取決于兩個操作數(shù)的符號。而且運(yùn)算結(jié)果的符號判斷也較復(fù)雜。例如,加法指令指示做(+X)+(-Y),由于一操作數(shù)為負(fù),實際操作是做減法(+X)-(+Y),結(jié)果符號與絕對值大的符號相同。同理,在減法指令中指示做 (+X)-(-Y),實際操作做加法(+X)+(+Y),結(jié)果與被減數(shù)符號相同。由于原碼加減法比較繁瑣,相應(yīng)地需要由復(fù)雜的硬件邏輯才能實現(xiàn),因此在計算機(jī)中很少被采用。(3)補(bǔ)碼定點數(shù)的加/減運(yùn)算 加法 整數(shù) X + Y補(bǔ)= X補(bǔ) + Y補(bǔ) (mod
15、2n+1)小數(shù) X + Y補(bǔ)= X補(bǔ) + Y補(bǔ) (mod 2) 減法 整數(shù) XY補(bǔ)= X +(- Y )補(bǔ)= X補(bǔ)+ -Y補(bǔ) (mod 2n+1)小數(shù) XY補(bǔ)= X +(- Y )補(bǔ)= X補(bǔ)+ -Y補(bǔ) (mod 2)無需符號判定,數(shù)值位連同符號位一起相加,符號位產(chǎn)生的進(jìn)位自然丟掉。關(guān)鍵是由Y補(bǔ) 求-Y補(bǔ) , -Y補(bǔ)= 對 Y補(bǔ) 逐位取反再在最低位加 1。(包括符號位)實現(xiàn)補(bǔ)碼加減運(yùn)算的邏輯電路X X+YX X-Y / 加減FXFs 加法器 ( ALU) 目的 寄存器源 寄存器 選通門二選通門選通門F1XYFYXF010 1F /YFsOVRZC累加器/Y00000111實現(xiàn)補(bǔ)碼加運(yùn)算的執(zhí)行過程
16、X X+Y完成加運(yùn)算,需要把被加數(shù)和加數(shù)送ALU的輸入端,運(yùn)算結(jié)果要接收到累加器,需要給出命令: FXFYXFFs 加法器 0101011010110001 選通門二選一選通門XYFsOVRZC被加數(shù)/和/Y加數(shù)CP10110001 0101011000000111CP命令建立數(shù)據(jù)傳送 加運(yùn)算存結(jié)果命令建立00000111數(shù)據(jù)傳送 命令建立實現(xiàn)補(bǔ)碼減運(yùn)算的邏輯電路X XY完成減運(yùn)算,需要把被減數(shù)和減數(shù)送ALU的輸入端,運(yùn)算結(jié)果要接收到累加器,需要給出命令: /,F(xiàn)1FXF/YXFFs 加法器 0101011011110001 選通門二選一選通門XYFsOVRZC被減數(shù)/差/Y減數(shù)CPCP命令建
17、立數(shù)據(jù)傳送 加運(yùn)算存結(jié)果命令建立數(shù)據(jù)傳送 命令建立F1100001110 01100101 01010110 0110101 (4)溢出概念和判別方法當(dāng)運(yùn)算結(jié)果超出機(jī)器數(shù)所能表示的范圍時,稱為溢出。兩個異號數(shù)相加或兩個同號數(shù)相減,其結(jié)果是不會溢出的。僅當(dāng)兩個同號數(shù)相加或者兩個異號數(shù)相減時,才有可能發(fā)生溢出,一旦溢出,運(yùn)算結(jié)果就不正確了,因此必須將溢出的情況檢查出來。判別方法有三種: 當(dāng)符號相同的兩數(shù)相加時,如果結(jié)果的符號與加數(shù)(或被加數(shù))不相同,則為溢出。 當(dāng)任意符號兩數(shù)相加時,如果C=Cf,運(yùn)算結(jié)果正確,其中C為數(shù)值最高位的進(jìn)位,Cf為符號位的進(jìn)位。如果CCf ,則為溢出,所以溢出條件=CC
18、f 。 采用雙符號fs2fs1,正數(shù)的雙符號位為00,負(fù)數(shù)的雙符號位為11。符號位參與運(yùn)算,當(dāng)結(jié)果的兩個符號位不相同時為溢出。所以溢出條件= fs2fs1 。補(bǔ)碼加減法溢出判斷方法之一:單符號位,正 + 正 得負(fù) 或 負(fù) + 負(fù) 得正方法之二:數(shù)值位有向符號位的進(jìn)位,但符號位不產(chǎn)生向更高位的進(jìn)位,數(shù)值位沒有向符號位的進(jìn)位,但符號位產(chǎn)生向更高位的進(jìn)位方法之三:雙符號位的結(jié)果為 01 或 10,最高符號位 代表其 真正的符號補(bǔ)碼加減法運(yùn)算實例X = 0.1011 y = -0.0101X補(bǔ) = 00 1011, Y補(bǔ) = 11 1011 補(bǔ)碼 -Y補(bǔ) = 00 0101 00 1011 00 10
19、11+11 1011 + 00 0101100 0110 01 0000X+Y (不溢出) X-Y (溢出)正數(shù)加負(fù)數(shù)不會溢出符號位和數(shù)值位都產(chǎn)生進(jìn)位雙符號位結(jié)果相同不是溢出正數(shù)加正數(shù)結(jié)果為負(fù)是溢出數(shù)值位有進(jìn)位符號位無進(jìn)位是溢出雙符號位結(jié)果不相同是溢出判斷溢出的 3套方案是一個事實的 3種不同的表述單符號位判斷正加正得負(fù)或負(fù)加負(fù)得正表明溢出符號位與最高數(shù)值位判斷數(shù)值位向符號位有進(jìn)位但符號位無進(jìn)位輸出或數(shù)值位向符號位沒有進(jìn)位但符號位本身有進(jìn)位輸出是溢出雙符號位判斷運(yùn)算結(jié)果的 2 個符號位的值不相同表明有溢出單選題:(2009年)一個 C 語言機(jī)器在一臺32位機(jī)器上運(yùn)行。程序中定義了三個變量 x,
20、y和z,其中x和z是int型,y 為 short型。當(dāng) 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,在機(jī)器中用補(bǔ)碼表示為FFF7H(關(guān)鍵),
21、計算 z=x+y=0000007FH+FFFFFFF7H(符號擴(kuò)展為32位)= 00000076H技巧:可用排除法,得到 =-9的補(bǔ)碼為FFF7H 可排除A和B,再由127+(-9)=118可知z為正數(shù),即可排除C,再驗證D中z=76H=118,確認(rèn)選D??疾橹R點: 16 進(jìn)制負(fù)數(shù)的補(bǔ)碼表示,符號擴(kuò)展,補(bǔ)碼運(yùn)算。答案: D真題解析P47 二.4 題 對于 固定字長的數(shù),右移將舍去低位部分。兩種常用的舍入規(guī)則:0舍1入法:末位恒置1法:(5)舍入處理(6)定點數(shù)的乘/除運(yùn)算定點乘法運(yùn)算原碼一位乘法 :兩個原碼數(shù)相乘,其乘積的符號為相乘兩數(shù)的異或值,數(shù)值為兩數(shù)絕對值之積。定點補(bǔ)碼一位乘法:有的機(jī)
22、器為方便加減法運(yùn)算,數(shù)據(jù)以補(bǔ)碼形式存放。校正法和比較法校正法:乘法直接用補(bǔ)碼進(jìn)行,以減少轉(zhuǎn)換次數(shù)。具體規(guī)則如下:XY補(bǔ)=X補(bǔ)( 0. Y1Y2 Yn )+-X補(bǔ)Y0當(dāng)Y為負(fù)時,求XY補(bǔ),需要用X補(bǔ)乘上Y補(bǔ)的數(shù)值位,再加上-X補(bǔ)該算法需要區(qū)分乘數(shù)的符號,不方便。比較法布斯(Booth)法:用相鄰兩位乘數(shù)比較的結(jié)果決定加X補(bǔ)、 X補(bǔ)或0。 布斯公式:在乘數(shù)Yn后添加Yn+1=0。按照Yn+1 ,Yn相鄰兩位的三種情況,其運(yùn)算規(guī)則如下:Yn+1 Yn =00或11,部分積加0,右移1位;Yn+1 Yn =10 ,部分積加X補(bǔ),右移1位; Yn+1 Yn =01 ,部分積加X補(bǔ),右移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 手工運(yùn)算過程最終乘積原碼表示: 0 1 0 0 0 1 1 1 1解決方案: 1. 每次求出部分積,不是一次總累加 2. 變每次左移被乘數(shù)為右移部分積,移出的部分保存起來 3. 乘數(shù)放到一個移位寄存器中,用最低的一位來控制相加數(shù)(取被乘數(shù)或0)。符號異或,絕對值相乘該方案用于計算機(jī)會有問題: 1. 加法器只有兩個數(shù)據(jù)輸入端 2. 加法器與乘運(yùn)
24、算數(shù)據(jù)位數(shù)相同 3. 如何判斷乘數(shù)每一位是 0 或者 1原碼乘運(yùn)算-手算方案原碼一位乘法乘法開始時,A寄存器被清為零,作為初始部分積。被乘數(shù)放在B寄存器中,乘數(shù)放在C寄存器中。實現(xiàn)部分積與被乘數(shù)相加是在ALU中完成的。每步運(yùn)算,部分積最低一位的值將右移入C寄存器的最高數(shù)值位,使相乘之積的低位部分保存進(jìn)C寄存器中,原來的乘數(shù)在逐位右移過程中丟失掉。寄存器A最終存放為乘積的高n位,寄存器C最終存放乘積的低n位。另外還需要一個計數(shù)器Cd用來控制逐位相乘的次數(shù),它的初值存放為乘數(shù)的位數(shù)值,在計算的過程中每完成一位乘計算就執(zhí)行減1操作,待計數(shù)到0時,給出結(jié)束乘運(yùn)算的控制信號。實現(xiàn)原碼一位乘法的邏輯線路圖
25、 加 法 器 部 分 積 被 乘 數(shù) 乘 數(shù) F最低位加運(yùn)算移位線路每位1套最高位被乘數(shù)作為加數(shù),用乘數(shù)最低位的值控制累加,結(jié)果右移一位存部分積寄存器,并且乘數(shù)同時右移一位。部分積的最低位移入到乘數(shù)的最高位計數(shù)器 CdABC原碼一位乘運(yùn)算過程舉例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,原碼一位乘運(yùn)算規(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* 原碼一位乘運(yùn)算規(guī)則 操作數(shù)、結(jié)果用原碼表示 絕對值運(yùn)算,符號單獨處理 被乘數(shù)(B)、部分積(A)取雙符號位 乘數(shù)末位(Cn)為判斷位,其狀態(tài)決定下步操作 作n次循環(huán)(累加、右移)特點絕對值運(yù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定點補(bǔ)碼一位乘法 原碼乘法存在的缺點是符號位需要單獨運(yùn)算,并要在最后給乘積冠以正確的符號。補(bǔ)碼乘法是指采用操作數(shù)的補(bǔ)碼進(jìn)行乘法運(yùn)算,最后乘積仍為補(bǔ)碼,能自然得到乘積的正確符號。算法分析:校正法 X補(bǔ) = X0.X1X2Xn Y為正:Y補(bǔ) = 0.Y1Y2Yn (XY)補(bǔ) = X補(bǔ)(0.Y1Y2Yn) Y為負(fù):Y補(bǔ) = 1.Y1Y2Yn由Y = -Y0 + 0.Y
29、1Y2Yn,得 (XY)補(bǔ) = X補(bǔ)(0.Y1Y2Yn)+(-X)補(bǔ) Y符號任意: (XY)補(bǔ) = X補(bǔ)(0.Y1Y2Yn)+(-X)補(bǔ)Y0符號位算法分析:校正法 X補(bǔ) = X0.X1X2Xn Y為正:Y補(bǔ) = 0.Y1Y2Yn (XY)補(bǔ) = X補(bǔ)(0.Y1Y2Yn) Y為負(fù):Y補(bǔ) = 1.Y1Y2Yn由Y = -Y0 + 0.Y1Y2Yn,得 (XY)補(bǔ) = X補(bǔ)(0.Y1Y2Yn)+(-X)補(bǔ) Y符號任意: (XY)補(bǔ) = X補(bǔ)(0.Y1Y2Yn)+(-X)補(bǔ)Y0符號位校正法的過程是先按原碼乘法那樣直接乘,最后再根據(jù)乘數(shù)符號進(jìn)行校正。其算法規(guī)則如下:不管被乘數(shù)X補(bǔ)的符號如何,只要乘數(shù)Y補(bǔ)
30、為正,則可像原碼乘法一樣進(jìn)行運(yùn)算,其結(jié)果不需校正。如果乘數(shù)Y補(bǔ)為負(fù),則先按原碼乘法運(yùn)算,結(jié)果再加上一個校正量-X補(bǔ)。 比較法算法 (Booth算法) :Yi(高位) Yi+1(低位) 操作(A補(bǔ)為部分積累加和) 0 00 11 01 1 1/2A補(bǔ) 1/2(A補(bǔ)+X補(bǔ)) 1/2(A補(bǔ)-X補(bǔ)) 1/2A補(bǔ)比較法 Booth算法:用相鄰兩位乘數(shù)比較的結(jié)果決定 +X補(bǔ)、-X補(bǔ)或+0。Booth算法運(yùn)算規(guī)則部分積A、被乘數(shù)B取雙符號位,符號位參加運(yùn)算; 乘數(shù)C取單符號位,符號參加移位,以決定最后是否修正; C末位設(shè)置附加位Cn+1,初值為0,CnCn+1組成判斷位,決定運(yùn)算操作,作n步循環(huán); 第n+1
31、,僅修正,不移位。注意,最后一步不移位,因為這一步是用來處理符號位的?!纠縓=-0.1101,Y=0.1011,求XY補(bǔ)。初值:A=00.0000,B=X補(bǔ)=11.0011, -B=-X補(bǔ)=00.1101,C =Y補(bǔ)=0.1011計算過程:0 0 0 0 0 0 0. 1 0 1 1 0 初始值,最后一位補(bǔ)0 0 0 1 1 0 1 Y4Y5=10 +-X補(bǔ)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補(bǔ)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補(bǔ)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補(bǔ)1 1 0 1 1 1 0 0 0 1+部分積 乘數(shù)Y Yi Yi+1 說明乘積高位 乘積低位XY補(bǔ)=1.01110001, XY= - 0.10001111不移位 定點除法運(yùn)算定點原碼一位除法恢復(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手轎車買賣合同示范文本
- 個人車位贈與合同范本
- 臨時工勞動合同范本參考
- 2025年平安保險公司特定疾病終身保險賠付合同
- 業(yè)務(wù)合作合同格式樣本
- 不銹鋼采購與銷售合同
- 個人借款質(zhì)押合同書樣本
- 專用線鐵路物流服務(wù)合同細(xì)則
- 個人與企業(yè)租賃合同范本大全
- 采購標(biāo)準(zhǔn)合同書
- 2025年中國山泉水市場前景預(yù)測及投資規(guī)劃研究報告
- GB/T 18109-2024凍魚
- 2025年八省聯(lián)考數(shù)學(xué)試題(原卷版)
- 重慶市2025屆高三第一次聯(lián)合診斷檢測英語試卷(含解析含聽力原文無音頻)
- 《榜樣9》觀后感心得體會二
- 天津市部分區(qū)2024-2025學(xué)年九年級(上)期末物理試卷(含答案)
- 一氧化碳中毒培訓(xùn)
- 保潔服務(wù)質(zhì)量與服務(wù)意識的培訓(xùn)
- 突發(fā)公共衛(wèi)生事件衛(wèi)生應(yīng)急
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- GB 18030-2022信息技術(shù)中文編碼字符集
評論
0/150
提交評論