五、定點(diǎn)數(shù)的乘除法:
(2001年)請(qǐng)用補(bǔ)碼一位乘中的 Booth 算法計(jì)算 x?y=?x=0101,y=-0101,列出計(jì)算過(guò)程。
「分析」:補(bǔ)碼一位乘法中的Booth算法是一種對(duì)帶符號(hào)數(shù)進(jìn)行乘法運(yùn)算的十分有效的處理方法,采用相加和相減的操作計(jì)算補(bǔ)碼數(shù)據(jù)的乘積。做法是從最低位開(kāi)始,比較相臨的數(shù)位,相等時(shí)不加不減,只進(jìn)行右移位操作;不相等(01)時(shí)加乘數(shù),不相等(10時(shí))相減乘數(shù),再右移位;直到所有位均處理完畢
「答案」:
x=0101,x補(bǔ)=0101, -x補(bǔ)=1011,y=-0101,y補(bǔ)=1011
循環(huán) 步驟 乘積(R0 R1 P)
0 初始值 0000 1011 0
1 減0101 1011 1011 0
右移1位 1101 1101 1
2 無(wú)操作 1101 1101 1
右移1位 1110 1110 1
3 加0101 0011 1110 1
右移1位 0001 1111 0
4 減0101 1100 1111 0
右移1位 1110 0111 1
所以結(jié)果為[x?y]補(bǔ)=11101111,真值為-00011001,十進(jìn)制值為-25.
(2002年)已知x=0011, y=-0101,試用原碼一位乘法求xy=?請(qǐng)給出規(guī)范的運(yùn)算步驟,求出乘積。
「分析」:原碼一位乘法中,符號(hào)位與數(shù)值位是分開(kāi)進(jìn)行計(jì)算的。運(yùn)算結(jié)果的數(shù)值部分是乘數(shù)與被乘數(shù)數(shù)值位的乘積,符號(hào)是乘數(shù)與被乘數(shù)符號(hào)位的異或。原碼一位乘法的每一次循環(huán)的操作是最低位為1,加被乘數(shù)的絕對(duì)值后右移1位;最低位為0,加0后右移1位。幾位乘法就循環(huán)幾次。
「答案」:
x原=00011,y原=10101,|x|=0011, |y|=0101結(jié)果的符號(hào)位1 0=1
循環(huán) 步驟 乘積(R0 R1)
0 初始值 0000 0101
1 加0011 0011 0101
右移1位 0001 1010
2 加0 0001 1010
右移1位 0000 1101
3 加0011 0011 1101
右移1位 0001 1110
4 加0 0001 1110
右移1位 0000 1111
所以結(jié)果為-00001111
(2003年)32.用 Booth 算法計(jì)算7×(-3)。要求寫(xiě)出每一步運(yùn)算過(guò)程及運(yùn)算結(jié)果。
參考2001年考題
(2004年)32. 用原碼的乘法方法進(jìn)行 0110×0101 的四位乘法。要求寫(xiě)出每一步運(yùn)算過(guò)程及運(yùn)算結(jié)果。
參考2002年考題
(2005年)32.用原碼加減交替一位除法進(jìn)行7÷2運(yùn)算。要求寫(xiě)出每一步運(yùn)算過(guò)程及運(yùn)算結(jié)果。
「分析」:是教材P46原題
「答案」:
7的原碼0111,3的原碼0011,結(jié)果符號(hào)是0 0=0
原碼加減交替除法求x/y的分步運(yùn)算過(guò)程。
循環(huán) 步驟 余數(shù)(R0 R1)
0 初始值 0000 0111
左移,商0 0000 1110
1 減0011 1101 1110
加0011,商0 0000 1110(0)
左移1位 0001 1100
2 減0011 1110 1100
加0011,商0 0001 1100(0)
左移1位 0011 1000
3 減0011 0000 1000
商1 0000 1000(1)
左移1位 0001 0001
4 減0011 1110 0001
加0011,商0 0001 0001(0)
左移1位 0010 0010
R0右移1位 0001 0010
所以,商是0010,即2;余數(shù)是0001,即1.
由上可見(jiàn),定點(diǎn)數(shù)乘除法計(jì)算題每年必考(10分),同學(xué)除了掌握已經(jīng)考過(guò)的三種題型外,還要特別注意原碼恢復(fù)余數(shù)除法的計(jì)算過(guò)程,教材P44頁(yè)例題:計(jì)算7/2.我們利用這種方法計(jì)算一下7/3.
(2000年)1.在原碼一位乘中,當(dāng)乘數(shù)Yi為1時(shí),(?。?BR> A.被乘數(shù)連同符號(hào)位與原部分積相加后,右移一位
B.被乘數(shù)絕對(duì)值與原部分積相加后,右移一位
C.被乘數(shù)連同符號(hào)位右移一位后,再與原部分積相加
D.被乘數(shù)絕對(duì)值右移一位后,再與原部分積相加
「分析」:原碼一位乘法中,符號(hào)位與數(shù)值位是分開(kāi)進(jìn)行計(jì)算的。運(yùn)算結(jié)果的數(shù)值部分是乘數(shù)與被乘數(shù)數(shù)值位的乘積,符號(hào)是乘數(shù)與被乘數(shù)符號(hào)位的異或。數(shù)值位相乘時(shí),當(dāng)乘數(shù)某位為1時(shí),將被乘數(shù)絕對(duì)值與原部分積相加后,右移一位。
「答案」:B
(2001年)7.原碼乘法是(?。?BR> A.先取操作數(shù)絕對(duì)值相乘,符號(hào)位單獨(dú)處理
B.用原碼表示操作數(shù),然后直接相乘
C.被乘數(shù)用原碼表示,乘數(shù)取絕對(duì)值,然后相乘
D.乘數(shù)用原碼表示,被乘數(shù)取絕對(duì)值,然后相乘
「分析」:原碼一位乘法中,符號(hào)位與數(shù)值位是分開(kāi)進(jìn)行計(jì)算的。運(yùn)算結(jié)果的數(shù)值部分是乘數(shù)與被乘數(shù)數(shù)值位的乘積,符號(hào)是乘數(shù)與被乘數(shù)符號(hào)位的異或。
「答案」:A
8.原碼加減交替除法又稱(chēng)為不恢復(fù)余數(shù)法,因此(?。?。
A.不存在恢復(fù)余數(shù)的操作
B.當(dāng)某一步運(yùn)算不夠減時(shí),做恢復(fù)余數(shù)的操作
C.僅當(dāng)最后一步余數(shù)為負(fù)時(shí),做恢復(fù)余數(shù)的操作
D.當(dāng)某一步余數(shù)為負(fù)時(shí),做恢復(fù)余數(shù)的操作
「分析」:在用原碼加減交替法作除法運(yùn)算時(shí),商的符號(hào)位是由除數(shù)和被除數(shù)的符號(hào)位異或來(lái)決定的,商的數(shù)值是由除數(shù)、被除數(shù)的絕對(duì)值通過(guò)加減交替運(yùn)算求得的。由于除數(shù)、被除數(shù)取的都是絕對(duì)值,那么最終的余數(shù)當(dāng)然應(yīng)是正數(shù)。如果最后一步余數(shù)為負(fù),則應(yīng)將該余數(shù)加上除數(shù),將余數(shù)恢復(fù)為正數(shù),稱(chēng)為恢復(fù)余數(shù)。
「答案」:C
(2002年)5.原碼乘法是指(?。?。
A.用原碼表示乘數(shù)與被乘數(shù),直接相乘
B.取操作數(shù)絕對(duì)值相乘,符號(hào)位單獨(dú)處理
C.符號(hào)位連同絕對(duì)值一起相乘
D.取操作數(shù)絕對(duì)值相乘,乘積符號(hào)與乘數(shù)符號(hào)相同
答案:B
六、邏輯運(yùn)算:
(2005年)5.已知一個(gè)8位寄存器的數(shù)值為11001010,將該寄存器小循環(huán)左移一位后,結(jié)果為(?。?。
A.01100101 B.10010100 C.10010101 D.01100100
「分析」:
移位種類(lèi) 運(yùn)算規(guī)則
算術(shù)左移 每位左移一位,最右位移入0,位移出進(jìn)入標(biāo)志寄存器C位
算術(shù)右移 每位右移一位,位符號(hào)復(fù)制,最低位移出進(jìn)入標(biāo)志寄存器C位
邏輯左移 每位左移一位,最右位移入0,位移出進(jìn)入標(biāo)志寄存器C位
邏輯右移 每位右移一位,最右位移入0,最低位移出進(jìn)入標(biāo)志寄存器C位
小循環(huán)左移 每位左移一位,位進(jìn)入最低位和標(biāo)志寄存器C位
小循環(huán)右移 每位右移一位,最低位進(jìn)入位和標(biāo)志寄存器C位
大循環(huán)左移 每位左移一位,位進(jìn)入標(biāo)志寄存器C位,C位進(jìn)入最低位
大循環(huán)右移 每位右移一位,最低位進(jìn)入標(biāo)志寄存器C位,C位進(jìn)入位
「答案」:C
七、浮點(diǎn)數(shù)運(yùn)算:
(2001)6.浮點(diǎn)加減中的對(duì)階的(?。?BR> A.將較小的一個(gè)階碼調(diào)整到與較大的一個(gè)階碼相同
B.將較大的一個(gè)階碼調(diào)整到與較小的一個(gè)階碼相同
C.將被加數(shù)的階碼調(diào)整到與加數(shù)的階碼相同
D.將加數(shù)的階碼調(diào)整到與被加數(shù)的階碼相同
「分析」:浮點(diǎn)加減法中的對(duì)階是向較大階碼對(duì)齊,即將較小的一個(gè)階碼調(diào)整到與較大的一個(gè)階碼相同。
「答案」:A
注意有關(guān)浮點(diǎn)數(shù)的運(yùn)算
例:用浮點(diǎn)數(shù)運(yùn)算步驟對(duì)56+5進(jìn)行二進(jìn)制運(yùn)算,浮點(diǎn)數(shù)格式為1位符號(hào)位、5位階碼、10位尾碼,基數(shù)為2.
「答案」:
5610=1110002=0.111000×26 510=1012=0.101×23
① 對(duì)階:0.101×23=0.000101×26
② 尾數(shù)相加:0.111000+0.000101=0.111101
③ 規(guī)格化結(jié)果:0.111101×26
④ 舍入:數(shù)據(jù)己適合存儲(chǔ),不必舍入
⑤ 檢查溢出:數(shù)據(jù)無(wú)溢出。
第二章一般不考簡(jiǎn)答題
(2001年)請(qǐng)用補(bǔ)碼一位乘中的 Booth 算法計(jì)算 x?y=?x=0101,y=-0101,列出計(jì)算過(guò)程。
「分析」:補(bǔ)碼一位乘法中的Booth算法是一種對(duì)帶符號(hào)數(shù)進(jìn)行乘法運(yùn)算的十分有效的處理方法,采用相加和相減的操作計(jì)算補(bǔ)碼數(shù)據(jù)的乘積。做法是從最低位開(kāi)始,比較相臨的數(shù)位,相等時(shí)不加不減,只進(jìn)行右移位操作;不相等(01)時(shí)加乘數(shù),不相等(10時(shí))相減乘數(shù),再右移位;直到所有位均處理完畢
「答案」:
x=0101,x補(bǔ)=0101, -x補(bǔ)=1011,y=-0101,y補(bǔ)=1011
循環(huán) 步驟 乘積(R0 R1 P)
0 初始值 0000 1011 0
1 減0101 1011 1011 0
右移1位 1101 1101 1
2 無(wú)操作 1101 1101 1
右移1位 1110 1110 1
3 加0101 0011 1110 1
右移1位 0001 1111 0
4 減0101 1100 1111 0
右移1位 1110 0111 1
所以結(jié)果為[x?y]補(bǔ)=11101111,真值為-00011001,十進(jìn)制值為-25.
(2002年)已知x=0011, y=-0101,試用原碼一位乘法求xy=?請(qǐng)給出規(guī)范的運(yùn)算步驟,求出乘積。
「分析」:原碼一位乘法中,符號(hào)位與數(shù)值位是分開(kāi)進(jìn)行計(jì)算的。運(yùn)算結(jié)果的數(shù)值部分是乘數(shù)與被乘數(shù)數(shù)值位的乘積,符號(hào)是乘數(shù)與被乘數(shù)符號(hào)位的異或。原碼一位乘法的每一次循環(huán)的操作是最低位為1,加被乘數(shù)的絕對(duì)值后右移1位;最低位為0,加0后右移1位。幾位乘法就循環(huán)幾次。
「答案」:
x原=00011,y原=10101,|x|=0011, |y|=0101結(jié)果的符號(hào)位1 0=1
循環(huán) 步驟 乘積(R0 R1)
0 初始值 0000 0101
1 加0011 0011 0101
右移1位 0001 1010
2 加0 0001 1010
右移1位 0000 1101
3 加0011 0011 1101
右移1位 0001 1110
4 加0 0001 1110
右移1位 0000 1111
所以結(jié)果為-00001111
(2003年)32.用 Booth 算法計(jì)算7×(-3)。要求寫(xiě)出每一步運(yùn)算過(guò)程及運(yùn)算結(jié)果。
參考2001年考題
(2004年)32. 用原碼的乘法方法進(jìn)行 0110×0101 的四位乘法。要求寫(xiě)出每一步運(yùn)算過(guò)程及運(yùn)算結(jié)果。
參考2002年考題
(2005年)32.用原碼加減交替一位除法進(jìn)行7÷2運(yùn)算。要求寫(xiě)出每一步運(yùn)算過(guò)程及運(yùn)算結(jié)果。
「分析」:是教材P46原題
「答案」:
7的原碼0111,3的原碼0011,結(jié)果符號(hào)是0 0=0
原碼加減交替除法求x/y的分步運(yùn)算過(guò)程。
循環(huán) 步驟 余數(shù)(R0 R1)
0 初始值 0000 0111
左移,商0 0000 1110
1 減0011 1101 1110
加0011,商0 0000 1110(0)
左移1位 0001 1100
2 減0011 1110 1100
加0011,商0 0001 1100(0)
左移1位 0011 1000
3 減0011 0000 1000
商1 0000 1000(1)
左移1位 0001 0001
4 減0011 1110 0001
加0011,商0 0001 0001(0)
左移1位 0010 0010
R0右移1位 0001 0010
所以,商是0010,即2;余數(shù)是0001,即1.
由上可見(jiàn),定點(diǎn)數(shù)乘除法計(jì)算題每年必考(10分),同學(xué)除了掌握已經(jīng)考過(guò)的三種題型外,還要特別注意原碼恢復(fù)余數(shù)除法的計(jì)算過(guò)程,教材P44頁(yè)例題:計(jì)算7/2.我們利用這種方法計(jì)算一下7/3.
(2000年)1.在原碼一位乘中,當(dāng)乘數(shù)Yi為1時(shí),(?。?BR> A.被乘數(shù)連同符號(hào)位與原部分積相加后,右移一位
B.被乘數(shù)絕對(duì)值與原部分積相加后,右移一位
C.被乘數(shù)連同符號(hào)位右移一位后,再與原部分積相加
D.被乘數(shù)絕對(duì)值右移一位后,再與原部分積相加
「分析」:原碼一位乘法中,符號(hào)位與數(shù)值位是分開(kāi)進(jìn)行計(jì)算的。運(yùn)算結(jié)果的數(shù)值部分是乘數(shù)與被乘數(shù)數(shù)值位的乘積,符號(hào)是乘數(shù)與被乘數(shù)符號(hào)位的異或。數(shù)值位相乘時(shí),當(dāng)乘數(shù)某位為1時(shí),將被乘數(shù)絕對(duì)值與原部分積相加后,右移一位。
「答案」:B
(2001年)7.原碼乘法是(?。?BR> A.先取操作數(shù)絕對(duì)值相乘,符號(hào)位單獨(dú)處理
B.用原碼表示操作數(shù),然后直接相乘
C.被乘數(shù)用原碼表示,乘數(shù)取絕對(duì)值,然后相乘
D.乘數(shù)用原碼表示,被乘數(shù)取絕對(duì)值,然后相乘
「分析」:原碼一位乘法中,符號(hào)位與數(shù)值位是分開(kāi)進(jìn)行計(jì)算的。運(yùn)算結(jié)果的數(shù)值部分是乘數(shù)與被乘數(shù)數(shù)值位的乘積,符號(hào)是乘數(shù)與被乘數(shù)符號(hào)位的異或。
「答案」:A
8.原碼加減交替除法又稱(chēng)為不恢復(fù)余數(shù)法,因此(?。?。
A.不存在恢復(fù)余數(shù)的操作
B.當(dāng)某一步運(yùn)算不夠減時(shí),做恢復(fù)余數(shù)的操作
C.僅當(dāng)最后一步余數(shù)為負(fù)時(shí),做恢復(fù)余數(shù)的操作
D.當(dāng)某一步余數(shù)為負(fù)時(shí),做恢復(fù)余數(shù)的操作
「分析」:在用原碼加減交替法作除法運(yùn)算時(shí),商的符號(hào)位是由除數(shù)和被除數(shù)的符號(hào)位異或來(lái)決定的,商的數(shù)值是由除數(shù)、被除數(shù)的絕對(duì)值通過(guò)加減交替運(yùn)算求得的。由于除數(shù)、被除數(shù)取的都是絕對(duì)值,那么最終的余數(shù)當(dāng)然應(yīng)是正數(shù)。如果最后一步余數(shù)為負(fù),則應(yīng)將該余數(shù)加上除數(shù),將余數(shù)恢復(fù)為正數(shù),稱(chēng)為恢復(fù)余數(shù)。
「答案」:C
(2002年)5.原碼乘法是指(?。?。
A.用原碼表示乘數(shù)與被乘數(shù),直接相乘
B.取操作數(shù)絕對(duì)值相乘,符號(hào)位單獨(dú)處理
C.符號(hào)位連同絕對(duì)值一起相乘
D.取操作數(shù)絕對(duì)值相乘,乘積符號(hào)與乘數(shù)符號(hào)相同
答案:B
六、邏輯運(yùn)算:
(2005年)5.已知一個(gè)8位寄存器的數(shù)值為11001010,將該寄存器小循環(huán)左移一位后,結(jié)果為(?。?。
A.01100101 B.10010100 C.10010101 D.01100100
「分析」:
移位種類(lèi) 運(yùn)算規(guī)則
算術(shù)左移 每位左移一位,最右位移入0,位移出進(jìn)入標(biāo)志寄存器C位
算術(shù)右移 每位右移一位,位符號(hào)復(fù)制,最低位移出進(jìn)入標(biāo)志寄存器C位
邏輯左移 每位左移一位,最右位移入0,位移出進(jìn)入標(biāo)志寄存器C位
邏輯右移 每位右移一位,最右位移入0,最低位移出進(jìn)入標(biāo)志寄存器C位
小循環(huán)左移 每位左移一位,位進(jìn)入最低位和標(biāo)志寄存器C位
小循環(huán)右移 每位右移一位,最低位進(jìn)入位和標(biāo)志寄存器C位
大循環(huán)左移 每位左移一位,位進(jìn)入標(biāo)志寄存器C位,C位進(jìn)入最低位
大循環(huán)右移 每位右移一位,最低位進(jìn)入標(biāo)志寄存器C位,C位進(jìn)入位
「答案」:C
七、浮點(diǎn)數(shù)運(yùn)算:
(2001)6.浮點(diǎn)加減中的對(duì)階的(?。?BR> A.將較小的一個(gè)階碼調(diào)整到與較大的一個(gè)階碼相同
B.將較大的一個(gè)階碼調(diào)整到與較小的一個(gè)階碼相同
C.將被加數(shù)的階碼調(diào)整到與加數(shù)的階碼相同
D.將加數(shù)的階碼調(diào)整到與被加數(shù)的階碼相同
「分析」:浮點(diǎn)加減法中的對(duì)階是向較大階碼對(duì)齊,即將較小的一個(gè)階碼調(diào)整到與較大的一個(gè)階碼相同。
「答案」:A
注意有關(guān)浮點(diǎn)數(shù)的運(yùn)算
例:用浮點(diǎn)數(shù)運(yùn)算步驟對(duì)56+5進(jìn)行二進(jìn)制運(yùn)算,浮點(diǎn)數(shù)格式為1位符號(hào)位、5位階碼、10位尾碼,基數(shù)為2.
「答案」:
5610=1110002=0.111000×26 510=1012=0.101×23
① 對(duì)階:0.101×23=0.000101×26
② 尾數(shù)相加:0.111000+0.000101=0.111101
③ 規(guī)格化結(jié)果:0.111101×26
④ 舍入:數(shù)據(jù)己適合存儲(chǔ),不必舍入
⑤ 檢查溢出:數(shù)據(jù)無(wú)溢出。
第二章一般不考簡(jiǎn)答題