天天看點

計算機組成原理截斷法,計算機組成原理課後習題答案(一到九章)

精品文檔

3.4 分别用原碼一位乘法和補碼一位乘法計算[x×y]原和[x×y]補。

(1) x=0.11001 y=0.10001 (2) x=0.01101 y=-0.10100 (3) x=-0.10111 y=0.11011 (4) x=-0.01011 y=-0.11010 解:(1)[x×y]原=0.0110101001 [x×y]補=0.0110101001

(2)[x×y]原=1.0100000100 [x×y]補=1.1011111100 (3)[x×y]原=1.1001101101 [x×y]補=1.0110010011 (4)[x×y]原=0.0100011110 [x×y]補=0.0100011110

3.5 分别用原碼兩位乘法和補碼兩位乘法計算[x×y]原和[x×y]補。

(1) x=0.11001 y=0.10001 (2) x=0.10101 y=-0.01101 (3) x=-0.01111 y=0.11101 (4) x=-0.01001 y=-0.10010 解: (1) [x×y]原=0.0110101001 [x×y]補=0.0110101001

(2)[x×y]原=1.0100010001 [x×y]補=1.1011101111 (3)[x×y]原=1.0110110011 [x×y]補=1.1001001101 (4)[x×y]原=0.0010100010 [x×y]補=0.0010100010

3.6 分别用原碼不恢複餘數法和補碼不恢複餘數法計算[x/y]原和[x/y]補。(1) (4)

(1) x=0.01011 y=0.10110

[x/y]原=0.10000 [x/y]補=0.10000 or [x/y]補=0.10001 (2) x=0.10011 y=-0.11101

[x/y]原=1.10100 [x/y]補=1.01100 or [x/y]補=1.01011 (3) x=-0.10111 y=-0.11011

[x/y]原=0.11100 [x/y]補=0.11101 or [x/y]補=0.11100 (4) x=+10110 y=-00110

[x/y]原=100011 [x/y]補=111101

3.7 在進行浮點加減運算時,為什麼要進行對階?說明對階的方法和理由。 答:

3.8 已知某模型機的浮點資料表示格式如下: 0 數符 1 階符 2 7 階碼 8 15 尾數

其中,浮點數尾數和階碼的基值均為2,均采用補碼表示。

(1) 求該機所能表示的規格化最小正數和非規格化最小負數的機器數表示及其所對應的十進制真值。 (2)已知兩個浮點數的機器數表示為EF80H和FFFFH,求它們所對應的十進制真值。 (3)已知浮點數的機器數表示為:

[x]補=1 1111001 00100101,[y]補=1 1110111 00110100

試按浮點加減運算算法計算[x±y]補。 3.9 已知某機浮點數表示格式如下: 0 1 數符 階符 2 5 階 碼 6 11 尾 數

其中,浮點數尾數和階碼的基值均為2,階碼用移碼表示,尾數用補碼表示。設:

-+

x=0.110101×2001 y=-0.100101×2001 試用浮點運算規則計算x+y、x-y、x×y、x/y。(要求寫出詳細運算步驟,并進行規格化)。

.

精品文檔

解:機器數 [x]補=0 01111 110101 [y]補=1 10001 011011 [-y]補=0 10001 100101 (1)x+y 機器數 [x+y]補=1 10000 010000 x+y=-0.110000×20 對階: [Δe]移=[ex]移+[-ey]補=01111+11111=01110,Δe=ex-ey=-00010 小階對大階:[x]補=0 10001 001101

[x+y]補=1 10000 010000 x+y=-0.110000×20 (2)x-y

[x-y]補=0 10001 110010 x-y=0.110010×21

--

(3)x×y x×y=-0.111110×2001=-0.111110×21 階碼相加:[ex+ey]移=[ex]移+[ey]補=01111+00001=10000 尾數可采用定點補碼乘法(雙符号位):[Sx×Sy]補=[Sx]補×[Sy]補=11.100001010111

--

規格化:[x×y]補=1 01111 000010 x×y=-0.111110×2001=-0.111110×21 (4)x/y

尾數|Sx|>|Sy|,Sx右移得:[Sx]補=00.011010,[ex]移=10000, 階碼相減:[ex-ey]移=[ex]移+[-ey]補=10000+11111=01111

尾數用補碼不恢複餘數法:[Sx/Sy]補=[Sx]補/[Sy]補=1.010011(恒置1) OR 1.010100(校正) 規格化:[x/y]補=1 01111 010011 OR 1 01111 010100

--

x/y=-0.101101×2001 OR -0.101100×2001 3.10 A C Cn Cn+1 移 ALU AND1 Cn Cn+1 CR 位 脈 沖 & AND2 Cn Cn+1 時鐘脈沖 Q 結束 B B 寄存器B CT 啟動 00. 0 0 0 0 0 1 0 0 1 1 0 0 00. 0 0 0 0 0 0 1 0 0 1 1 0 -x 00. 1 1 0 0 1

00. 1 1 0 0 1 00. 0 1 1 0 0 1 0 1 0 0 1 1 00. 0 0 1 1 0 0 1 0 1 0 0 1

+x 11. 0 0 1 1 1

11. 0 1 1 0 1 11. 1 0 1 1 0 1 0 1 0 1 0 0 11. 1 1 0 1 1 0 1 0 1 0 1 0 -x 00. 1 1 0 0 1 00. 1 0 1 0 0 0 1 0 1 0 1 0

得 [X×Y]補=0.1010001010 X×Y=0.1010001010

寄存器 .

A B C 精品文檔

運算初态 運算終态 00 00000 00 10100 11 00111 11 00111 1001100 0101010

3.11 說明定點補碼和浮點補碼加減運算的溢出判斷方法。 答:⑴ 定點補碼加減運算的溢出判斷方法:

① 根據兩個操作數的符号與結果的符号判别溢出:OVR=xfyfsf+xfyfsf=?xf?sf??yf?sf? ② 根據兩數相加時産生的進位判别溢出:OVR=Cf⊕C1 ③ 根據變形補碼運算後的符号判别溢出:

sf1sf2=00,表示結果為正數,無溢出; sf1sf2=11,表示結果為負數,無溢出; sf1sf2=01,表示結果為正溢出; sf1sf2=10,表示結果為負溢出。 ⑵ 浮點補碼加減運算的溢出判斷方法

浮點補碼加減運算的溢出通常是指浮點數上溢,浮點數是否溢出是由階碼是否大于浮點數所能表示的最大正階來判斷的。

例如,設浮點數的階碼采用補碼表示,雙符号位,這時浮點數的溢出與否可由階碼的符号進行判斷: 若階碼 [j]補=01 ××…×,則表示出現上溢,需作溢出處理; 符号

若階碼 [j]補=10 ××…×,則表示出現下溢,按機器零處理。

3.12 說明定點原碼除法和定點補碼除法運算的溢出判斷方法。 答:定點原碼不恢複餘數除法的溢出算法為:

因為在定點小數運算時,若|被除數|>|除數|,則除法将發生溢出,不能進行除法運算。是以,如果在第一次上商時得到的商為“1”,則表示除法發生溢出。

定點補碼不恢複餘數除法的溢出算法為:

當被除數[x]補與除數[y]補同号時,如果餘數[r]補與[y]補同号,且上商為“1”,則表示商溢出。當被除數[x]補

與除數[y]補異号時,如果餘數[r]補與[y]補異号,且上商為“0”,則表示商溢出。

3.13 比較舍入方法中截斷法、恒置“1”法和0舍1入法的優缺點。 答:⑴ 截斷法(恒舍法)

截斷法是:将右移移出的值一律舍去,餘下的不作任何改變。該方法簡單,精度較低。 ⑵ 0舍1入法

0舍1入法的方法是:若右移時被丢掉數位的最高位為0,則舍去;若右移時被丢掉數位的最高位為1,則将1加到保留的尾數的最低位。

“0舍1入”法類似于十進制數的“四舍五入”。其主要優點是單次舍入引起的誤差小,精度較高;其缺點是加1時需多做一次運算,而且可能造成尾數溢出,需要再次右規。

⑶ 末位恒置1法

末位恒置1法也稱馮·諾依曼舍入法。其方法是:尾數右移時,無論被丢掉的數位的最高位為0還是為1,都将保留的尾數的最低位恒置為1。

末位恒置1法的主要優點是舍入處理不用做加法運算,方法簡單、速度快且不會有再次右規的可能,并且沒有積累誤差,是常用的舍入方法。其缺點是單次舍入引起的誤差較大。

3.14 利用用十進制加減運算算法計算下列各題:

(1) 125+436=? (2) 125-436=? (3) 436-125=? 解: (1) 125+436=561

.

精品文檔

(2) 125-436=-311 (3) 436-125=311

3.15 參照第二章表2-12給出的餘3碼的編碼規則,設計利用餘3碼進行十進制加法的修正邏輯。 答:餘3碼的編碼規則:

十進制數 0 1 2 3 4 5 6 7 8 9 餘3碼 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100

餘3碼十進制加法器運算結果的修正關系

十進制數 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 用餘3碼表示的 十進制和數 F4F3F2F1 C?40 0011 0 0100 0 0101 0 0110 0 0111 0 1000 0 1001 0 1010 0 1011 0 1100 1 0011 1 0100 1 0101 1 0110 1 0111 1 1000 1 1001 1 1010 1 1011 1 1100 兩個餘3碼按二進制規則相加得到的和數 C4 S4S3S2S1 0 0110 0 0111 0 1000 0 1001 0 1010 0 1011 0 1100 0 1101 0 1110 0 1111 1 0000 1 0001 1 0010 1 0011 1 0100 1 0101 1 0110 1 0111 1 1000 1 1001 加 “0011” 修 正 “+3” 修正邏輯 加 “1101” 修 正 “-3”

3.16 設有一個16位定點補碼運算器,資料最低位的序号為1。運算器可實作下述功能:

(1) A±B→A

.