2011年自考“計算機組成原理”串講資料(2)


第2章 數據編碼和數據運算$lesson$
一、名詞解釋:
歷年真題:
(2001年,2002年)基數:在浮點數據編碼中,對階碼所代表的指數值的數據,在計算機中是一個常數,不用代碼表示。
(2003年)移碼:帶符號數據表示方法之一,符號位用1表示正,0表示負,其余位與補碼相同。
(2004年)溢出:指數的值超出了數據編碼所能表示的數據范圍。
(2005年)偶校驗碼:讓編碼組代碼中1的個數為偶數,違反此規律為校驗錯。
近5年每年都考名稱解釋,所以第二章的名稱解釋是考試的重點,這里給大家列出了名詞解釋大家要熟悉一下,這都是本章的基本概念,有利于做選擇題及填空題。
1.原碼:帶符號數據表示方法之一,一個符號位表示數據的正負,0代表正號,1代表負號,其余的代表數據的絕對值。
2.補碼:帶符號數據表示方法之一,正數的補碼與原碼相同,負數的補碼是將二進制位按位取反后在最低位上加1.
3.反碼:帶符號數據的表示方法之一,正數的反碼與原碼相同,負數的反碼是將二進制位按位取反
4.階碼:在浮點數據編碼中,表示小數點的位置的代碼。
5.尾數:在浮點數據編碼中,表示數據有效值的代碼。
6.機器零:在浮點數據編碼中,階碼和尾數都全為0時代表的0值。
7.上溢:指數的絕對值太大,以至大于數據編碼所能表示的數據范圍。
8.下溢:指數的絕對值太小,以至小于數據編碼所能表示的數據范圍。
9.規格化數:在浮點數據編碼中,為使浮點數具有唯一的表示方式所作的規定,規定尾數部分用純小數形式給出,而且尾數的絕對值應大于1/R,即小數點后的第一位不為零。
10.Booth算法:一種帶符號數乘法,它采用相加和相減的操作計算補碼數據的乘積。
11.海明距離:在信息編碼中,兩個合法代碼對應位上編碼不同的位數。
12.馮?諾依曼舍入法:浮點數據的一種舍入方法,在截去多余位時,將剩下數據的最低位置1.
13.檢錯碼:能夠發現某些錯誤或具有自動糾錯能力的數據編碼。
14.糾錯碼:能夠發現某些錯誤并且具有自動糾錯能力的數據編碼。
15.奇校驗碼:讓編碼組代碼中1的個數為奇數,違反此規律為校驗錯。
16.海明碼:一種常見的糾錯碼,能檢測出兩位錯誤,并能糾正一位錯誤。
17.循環碼:一種糾錯碼,其合法碼字移動任意位后的結果仍然是一個合法碼字。
18.桶形移位器:可將輸入的數據向左、向右移動1位或多位的移位電路。
二、數制度的轉換:
歷年真題:
(2001年)1.若十進制數據為 137.5 則其八進制數為( )。
A.89.8 B.211.4 C.211.5 D.1011111.101
「分析」:十進制數轉化為八進制數時,整數部分和小數部分要用不同的方法來處理。整數部分的轉化采用除基取余法:將整數除以8,所得余數即為八進制數的個位上數碼,再將商除以8,余數為八進制十位上的數碼……如此反復進行,直到商是0為止;對于小數的轉化,采用乘基取整法:將小數乘以8,所得積的整數部分即為八進制數十分位上的數碼,再將此積的小數部分乘以8,所得積的整數部分為八進制數百分位上的數碼,如此反復……直到積是0為止。此題經轉換后得八進制數為211.40.
「答案」:B
(2002年)1.若十進制數為132.75,則相應的十六進制數為( )。
A.21.3 B.84.c C.24.6 D.84.6
「分析」:十進制數轉化為十六進制數時,采用除16取余法;對于小數的轉化,采用乘16取整法:將小數乘以16,所得積的整數部分轉換為十六進制。此題經轉換后得十六進制數為84.c.
「答案」:B
(2003年)14.若十六進制數為 A3.5 ,則相應的十進制數為( )。
A.172.5 B.179.3125 C.163.3125 D.188.5
「分析」:將十六進制數A3.5轉換為相應的十進制數,可采用乘冪相加法完成,即:10×161+3×160+5×16-1=163.3125.
「答案」:C
(2004年)1.若二進制數為 1111.101 ,則相應的十進制數為 ( )。
A.15.625 B.15.5 C.14.625 D.14.5
「分析」:將二進制數1111.101轉換為相應的十進制數,可采用乘冪相加法完成,即:1×23+1×22++1×21+1×20+1×2-1+1×2-3=15.625.
「答案」:A
(2005年)2.若十六進制數為B5.4,則相應的十進制數為( )。
A.176.5 B.176.25 C.181.25 D.181.5
「分析」:將十六進制數B5.4轉換為相應的十進制數,可采用乘冪相加法完成,即:11×161+5×160+4×16-1=181.25.
「答案」:C
可見,數制的轉換每年必考,必須掌握。
還可能考的題型:
(1)十進制轉換為二進制
方法:整數部分除2取余,小數部分乘2取整。
(2)二進制轉換為八進制
方法:以小數點為界,整數部分從右向左每三位分為一組,最左端不夠三位補零;小數部分從左向右每三位分為一組,最右端不夠三位補零;最后將每小組轉換位一位八進制數。
(3)二進制轉換為十六進制
方法:以小數點為界,整數部分從右向左每四位分為一組,最左端不夠四位補零;小數部分從左向右每四位分為一組,最右端不夠四位補零;最后將每小組轉換位一位十六進制數。
三、數據編碼:
定點數編碼:
(2000年)2.如果X為負數,由[X]補求[-X]補是將( )。
A.[X]補各值保持不變
B.[X]補符號位變反,其它各位不變
C.[X]補除符號位外,各位變反,未位加1
D.[X]補連同符號位一起各位變反,未位加1
「分析」:不論X是正數還是負數,由[X]補求[-X]補的方法是對[X]補求補,即連同符號位一起按位取反,末位加1.
「答案」:D
(2001年)2.若x補 =0.1101010 ,則 x 原=( )。
A.1.0010101 B.1.0010110 C.0.0010110 D.0.1101010
「分析」:正數的補碼與原碼相同,負數的補碼是用正數的補碼按位取反,末位加1求得。此題中X補為正數,則X原與X補相同。
「答案」:D
(2002年)2.若x=1011,則[x]補=( )。
A.01011 B.1011 C.0101 D.10101
「分析」:x為正數,符號位為0,數值位與原碼相同,結果為01011.
「答案」:A
(2003年)8.若[X]補=1.1011 ,則真值 X 是( )。
A.-0.1011 B.-0.0101 C.0.1011 D.0.0101
「分析」:[X]補=1.1011,其符號位為1,真值為負;真值絕對值可由其補碼經求補運算得到,即按位取后得0.0100再末位加1得0.0101,故其真值為-0.0101.
「答案」:B
(2004年)13.設有二進制數 x=-1101110,若采用 8 位二進制數表示,則[X]補( )。
A.11101101 B.10010011 C.00010011 D.10010010
「分析」:x=-1101110為負數,負數的補碼是將二進制位按位取反后在最低位上加1,故[x] 補 =10010010.
「答案」:D
(2005年)1.若[X]補=0.1011,則真值X=( )。
A.0.1011 B.0.0101 C.1.1011 D.1.0101
「分析」:[X]補=0.1011,其符號位為0,真值為正;真值就是0.1011.
「答案」:A
由上可見,有關補碼每年都考。同學也要注意一下移碼。
(2001)3.若定點整數 64 位,含 1 位符號位,補碼表示,則所能表示的絕對值最大負數為( )。
A.-264 B.-(264-1 ) C.-263 D.-(263-1)
「分析」:字長為64位,符號位為1位,則數值位為63位。當表示負數時,數值位全0為負絕對值最大,為-263.
「答案」:C
(2002年)3.某機字長8位,含一位數符,采用原碼表示,則定點小數所能表示的非零最小正數為( )
A.2-9 B.2-8 C.1- D.2-7
「分析」:求最小的非零正數,符號位為0,數值位取非0中的原碼最小值,此8位數據編碼為:00000001,表示的值是:2-7.
「答案」:D
(2003年)13.n+1 位的定點小數,其補碼表示的是( )。
A.-1 ≤ x ≤ 1-2-n B.-1 < x ≤ 1-2-n
C.-1 ≤ x < 1-2-n D.-1 < x < 1-2-n
「分析」:
編碼方式 最小值編碼 最小值 最大值編碼 最大值 數值范圍
n+1位無符號定點整數 000…000 0 111…111 2n+1-1 0≤x≤2n+1-1
n+1位無符號定點小數 0.00…000 0 0.11…111 1-2-n 0≤x≤1-2-n
n+1位定點整數原碼 1111…111 -2n+1 0111…111 2n-1 -2n+1≤x≤2n-1
n+1位點定小數原碼 1.111…111 -1+2-n 0.111…111 1-2-n -1+2-n≤x≤1-2-n
n+1位定點整數補碼 1000…000 -2n 0111…111 2n-1 -2n≤x≤2n-1
n+1位點定小數補碼 1.000…000 -1 0.111…111 1-2-n -1≤x≤1-2-n
n+1位定點整數反碼 1000…000 -2n+1 0111…111 2n-1 -2n+1≤x≤2n-1
n+1位點定小數反碼 1.000…000 -1+2-n 0.111…111 1-2-n -1+2-n≤x≤1-2-n
n+1位定點整數移碼 0000…000 -2n 1111…111 2n-1 -2n≤x≤2n-1
n+1位點定小數移碼 小數沒有移碼定義
「答案」:A
(2004年)12.定點小數反碼 [x] 反 =x0. x1 … xn表示的數值范圍是( )。
A.-1+2-n < x ≤ 1-2-n B.-1+2-n ≤ x <1-2-n
C.-1+2-n ≤ x ≤ 1-2-n D.-1+2-n < x <1-2-n
答案:C
(2005年)3.一個n+1位整數原碼的數值范圍是( )。
A.-2n+1< x <2n-1 B.-2n+1≤ x <2n-1
C.-2n+1< x ≤2n-1 D.-2n+1≤ x ≤2n-1
答案:D
由上可見,有關定點數編碼表示的數值范圍每年都考。今年可能考移碼,大家要注意。
浮點數編碼:
(2002年)4.設某浮點數共12位。其中階碼含1位階符共4位,以2為底,補碼表示;尾數含1位數符共8位,補碼表示,規格化。則該浮點數所能表示的最大正數是( )。
A.27 B.28 C.28-1 D.27-1
「分析」:為使浮點數取正數最大,可使尾數取正數最大,階碼取正數最大。尾數為8位補碼(含符號位),正最大為01111111,為1-2-7,階碼為4位補碼(含符號位),正最大為0111,為7,則最大正數為:(1-2-7)×27=27-1.
「答案」:D
四、定點數加減法:
定點數編碼:
(2001年)5.若采用雙符號位,則發生正溢的特征是:雙符號位為( )。
A.00 B.01 C.10 D.11
「分析」:采用雙符號位時,第一符號位表示最終結果的符號,第二符號位表示運算結果是否溢出。當第二位和第一位符號相同,則未溢出;不同,則溢出。若發生正溢出,則雙符號位為01,若發生負溢出,則雙符號位為10.
「答案」:B
(2003年)12.加法器中每一位的進位生成信號 g 為( )。
A.xi+yi B.xiyi C.xiyici D.xi+yi+ci
「分析」:在設計多位的加法器時,為了加快運算速度而采用了快速進位電路,即對加法器的每一位都生成兩個信號:進位生成信號g和進位傳播信號p,其中g和p定義為:gi=xiyi,p=xi+yi.
「答案」:B
(2004年)10.多位二進制加法器中每一位的進位傳播信號 p 為( )。
A.xi+yi B.xiyi C.xi+yi+ci D.xiyici
「分析」:在設計多位的加法器時,為了加快運算速度而采用了快速進位電路,即對加法器的每一位都生成兩個信號:進位生成信號g和進位傳播信號p其中g和p定義為:gi=xiyi,p=xi+yi.
「答案」:A
(2005年)4.若采用雙符號位補碼運算,運算結果的符號位為01,則( )。
A.產生了負溢出(下溢) B.產生了正溢出(上溢)
C.結果正確,為正數 D.結果正確,為負數
「分析」:采用雙符號位時,第一符號位表示最終結果的符號,第二符號位表示運算結果是否溢出。當第二位和第一位符號相同,則未溢出;不同,則溢出。若發生正溢出,則雙符號位為01,若發生負溢出,則雙符號位為10.
「答案」:B
可見溢出的判斷是重要考點,同學還要注意其他兩種判斷溢出的方法:
(1)兩正數相加結果為負或兩負數相加結果為正就說明產生了溢出
(2)最高位進位和次高位進位不同則發生了溢出
另外要注意快速進位加法器的進位生成信號g和進位傳播信號p其中g和p定義為:gi=xiyi ,p=xi+yi.第i位的進位: .
五、定點數的乘除法:
(2001年)請用補碼一位乘中的 Booth 算法計算 x?y=?x=0101,y=-0101,列出計算過程。
「分析」:補碼一位乘法中的Booth算法是一種對帶符號數進行乘法運算的十分有效的處理方法,采用相加和相減的操作計算補碼數據的乘積。做法是從最低位開始,比較相臨的數位,相等時不加不減,只進行右移位操作;不相等(01)時加乘數,不相等(10時)相減乘數,再右移位;直到所有位均處理完畢
「答案」:
x=0101,x補=0101, -x補=1011,y=-0101,y補=1011
循環 步驟 乘積(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
所以結果為[x?y]補=11101111,真值為-00011001,十進制值為-25.
(2002年)已知x=0011, y=-0101,試用原碼一位乘法求xy=?請給出規范的運算步驟,求出乘積。
「分析」:原碼一位乘法中,符號位與數值位是分開進行計算的。運算結果的數值部分是乘數與被乘數數值位的乘積,符號是乘數與被乘數符號位的異或。原碼一位乘法的每一次循環的操作是最低位為1,加被乘數的絕對值后右移1位;最低位為0,加0后右移1位。幾位乘法就循環幾次。
「答案」:
x原=00011,y原=10101,|x|=0011, |y|=0101結果的符號位1 0=1
循環 步驟 乘積(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
所以結果為-00001111
(2003年)32.用 Booth 算法計算7×(-3)。要求寫出每一步運算過程及運算結果。
參考2001年考題
(2004年)32. 用原碼的乘法方法進行 0110×0101 的四位乘法。要求寫出每一步運算過程及運算結果。
參考2002年考題
(2005年)32.用原碼加減交替一位除法進行7÷2運算。要求寫出每一步運算過程及運算結果。
「分析」:是教材P46原題
「答案」:
7的原碼0111,3的原碼0011,結果符號是0 0=0
原碼加減交替除法求x/y的分步運算過程。
循環 步驟 余數(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;余數是0001,即1.
由上可見,定點數乘除法計算題每年必考(10分),同學除了掌握已經考過的三種題型外,還要特別注意原碼恢復余數除法的計算過程,教材P44頁例題:計算7/2.我們利用這種方法計算一下7/3.
(2000年)1.在原碼一位乘中,當乘數Yi為1時,( )。
A.被乘數連同符號位與原部分積相加后,右移一位
B.被乘數絕對值與原部分積相加后,右移一位
C.被乘數連同符號位右移一位后,再與原部分積相加
D.被乘數絕對值右移一位后,再與原部分積相加
「分析」:原碼一位乘法中,符號位與數值位是分開進行計算的。運算結果的數值部分是乘數與被乘數數值位的乘積,符號是乘數與被乘數符號位的異或。數值位相乘時,當乘數某位為1時,將被乘數絕對值與原部分積相加后,右移一位。
「答案」:B
(2001年)7.原碼乘法是( )。
A.先取操作數絕對值相乘,符號位單獨處理
B.用原碼表示操作數,然后直接相乘
C.被乘數用原碼表示,乘數取絕對值,然后相乘
D.乘數用原碼表示,被乘數取絕對值,然后相乘
「分析」:原碼一位乘法中,符號位與數值位是分開進行計算的。運算結果的數值部分是乘數與被乘數數值位的乘積,符號是乘數與被乘數符號位的異或。
「答案」:A
8.原碼加減交替除法又稱為不恢復余數法,因此( )。
A.不存在恢復余數的操作
B.當某一步運算不夠減時,做恢復余數的操作
C.僅當最后一步余數為負時,做恢復余數的操作
D.當某一步余數為負時,做恢復余數的操作
「分析」:在用原碼加減交替法作除法運算時,商的符號位是由除數和被除數的符號位異或來決定的,商的數值是由除數、被除數的絕對值通過加減交替運算求得的。由于除數、被除數取的都是絕對值,那么最終的余數當然應是正數。如果最后一步余數為負,則應將該余數加上除數,將余數恢復為正數,稱為恢復余數。
「答案」:C
(2002年)5.原碼乘法是指( )。
A.用原碼表示乘數與被乘數,直接相乘
B.取操作數絕對值相乘,符號位單獨處理
C.符號位連同絕對值一起相乘
D.取操作數絕對值相乘,乘積符號與乘數符號相同
答案:B
六、邏輯運算:
(2005年)5.已知一個8位寄存器的數值為11001010,將該寄存器小循環左移一位后,結果為( )。
A.01100101 B.10010100 C.10010101 D.01100100
「分析」:
移位種類 運算規則
算術左移 每位左移一位,最右位移入0,最高位移出進入標志寄存器C位
算術右移 每位右移一位,最高位符號復制,最低位移出進入標志寄存器C位
邏輯左移 每位左移一位,最右位移入0,最高位移出進入標志寄存器C位
邏輯右移 每位右移一位,最右位移入0,最低位移出進入標志寄存器C位
小循環左移 每位左移一位,最高位進入最低位和標志寄存器C位
小循環右移 每位右移一位,最低位進入最高位和標志寄存器C位
大循環左移 每位左移一位,最高位進入標志寄存器C位,C位進入最低位
大循環右移 每位右移一位,最低位進入標志寄存器C位,C位進入最高位
「答案」:C
七、浮點數運算:
(2001)6.浮點加減中的對階的( )。
A.將較小的一個階碼調整到與較大的一個階碼相同
B.將較大的一個階碼調整到與較小的一個階碼相同
C.將被加數的階碼調整到與加數的階碼相同
D.將加數的階碼調整到與被加數的階碼相同
「分析」:浮點加減法中的對階是向較大階碼對齊,即將較小的一個階碼調整到與較大的一個階碼相同。
「答案」:A
注意有關浮點數的運算
例:用浮點數運算步驟對56+5進行二進制運算,浮點數格式為1位符號位、5位階碼、10位尾碼,基數為2.
「答案」:
5610=1110002=0.111000×26 510=1012=0.101×23
① 對階:0.101×23=0.000101×26
② 尾數相加:0.111000+0.000101=0.111101
③ 規格化結果:0.111101×26
④ 舍入:數據己適合存儲,不必舍入
⑤ 檢查溢出:數據無溢出。
第二章一般不考簡答題
最新資訊
- 2025年10月自考開考科目清單公布!新版教材這樣買才不會錯2025-09-21
- 倒計時!2025年10月自考考前沖刺,這些資料必須有2025-09-20
- 重點收藏!2025年10月自考《中國近代史綱要》歷史事件時間點梳理2025-09-19
- 考生必看!2025年10月自考《中國近代史綱要》必背考點2025-09-19
- 重點收藏!2025年10月自考《習概(15040)》歷年高頻簡答題匯總2025-09-19
- 2025年10月自考報名全結束!后續備考要點、資源合集、考試須知一文看全2025-09-18
- 江蘇2025年10月自考時間敲定!10月25-26日,考前真題資源整理速領2025-09-18
- 10月25日開考!2025年10月自考《習概》全書高頻考點10頁紙更新速領2025-09-17
- 最后一月!2025年10月自考如何復習高效提分?附高頻考點整理2025-09-15
- 2025年10月自考教材目錄更新!這些科目已調整,附購買指南2025-09-11