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