学历改变命运
24小时客服:4008135555/010-82335555
当前位置:首页 > 笔记串讲 > 自考“计算机组成原理”串讲资料(2)

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

2007年07月04日    来源:   字体:   打印

  第2章 数据编码和数据运算

  一、名词解释:

  历年试题

  (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运算。要求写出每一步运算过程及运算结果。

  「答案」:

  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

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

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

  第二章一般不考简答题

关闭