位置:首页 > 自考专业

自考“计算机组成原理”串讲资料(2)

  • 发布时间:2024-09-15 16:21:23
  • 来源:本站整理
  • 阅读:
导读:
  第2章 数据编码和数据运算
  一、名词解释:
  历年真题:
  (2001年,2002年)基数:在浮点数据编码中,对阶码所代表的指数值的数据,在计算机中是一个常数,不用代码表示。
  (2003年)移码:带符号数据表示方法之一,符号位用1表示正,0表示负,其余位与补码相同。
  (2004年)溢出:指数的值超出了数

历年真题:

(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

④ 舍入:数据己适合存储,不必舍入

⑤ 检查溢出:数据无溢出。

第二章一般不考简答题

相关阅读