计算机组成原理课后习题答案(一到九章) 下载本文

2.19 什么是“码距”?数据校验与码距有什么关系?

答:码距是指在一组编码中任何两个编码之间最小的距离。

数据校验码的校验位越多,码距越大,编码的检错和纠错能力越强。 记码距为d,码距与校验码的检错和纠错能力的关系是: d≥e+1 可检验e个错。 d≥2t+1 可纠正t个错。

d≥e+t+1 且e>t,可检e个错并能纠正t个错。

2.20 奇偶校验码的码距是多少?奇偶校验码的校错能力怎样?

答:奇偶校验码的码距为2。奇偶校验码只能发现一位或奇数位个错误,而无法发现偶数位个错误,而且即使发现奇数位个错误也无法确定出错的位置,因而无法自动纠正错误。

2.21 下面是两个字符(ASCII码)的检一纠一错的海明校验码(偶校验),请检测它们是否有错?如果有错请加以改正,并写出相应的正确ASCII码所代表的字符。 (1) 10111010011 (2) 10001010110 解:

(1) 指误字为

E1=P1⊕A6⊕A5⊕A3⊕A2⊕A0=1⊕1⊕1⊕1⊕0⊕1=1 E2=P2⊕A6⊕A4⊕A3⊕A1⊕A0=0⊕1⊕0⊕1⊕1⊕1=0 E3=P4⊕A5⊕A4⊕A3=1⊕1⊕0⊕1=1 E4=P8⊕A2⊕A1⊕A0=0⊕0⊕1⊕1=0 得到的指误字为E4E3E2E1=0101=(5)10,表示接收到的海明校验码中第5位上的数码出现了错误。将第5位上的数码A5=1取反,即可得到正确结果 10110010011。正确ASCII码所代表的字符为1001011=“K”。 (2) 指误字为

E1=P1⊕A6⊕A5⊕A3⊕A2⊕A0=1⊕0⊕1⊕1⊕1⊕0=0 E2=P2⊕A6⊕A4⊕A3⊕A1⊕A0=0⊕0⊕0⊕1⊕1⊕0=0 E3=P4⊕A5⊕A4⊕A3=0⊕1⊕0⊕1=0 E4=P8⊕A2⊕A1⊕A0=0⊕1⊕1⊕0=0

得到的指误字为E4E3E2E1=0000,无错。正确ASCII码为0101110=“.”

2.22 试编出8位有效信息01101101的检二纠一错的海明校验码(用偶校验)。 解:8位有效信息需要用4个校验位,所以检一纠一错的海明校验码共有12位。 4个校验位为:

P1=A7⊕A6⊕A4⊕A3⊕A1=0⊕1⊕0⊕1⊕0=0 P2=A7⊕A5⊕A4⊕A2⊕A1=0⊕1⊕0⊕1⊕0=0

P4=A6⊕A5⊕A4⊕A0=1⊕1⊕0⊕1=1 P8=A3⊕A2⊕A1⊕A0=1⊕1⊕0⊕1=1

检一纠一错的海明校验码:000111011101=1DDH 检二纠一错的海明校验码,增加P0

P0=P1⊕P2⊕A7⊕P4⊕A6⊕A5⊕A4⊕P8⊕A3⊕A2⊕A1⊕A0=1

有效信息01101101的13位检二纠一错的海明校验码:1000111011101=11DDH

2.23 设准备传送的数据块信息是1010110010001111,选择生成多项式为G(x)=100101,试求出数据块的CRC码。

解:模2除后,余数R(x)=10011,数据块的CRC码:

101011001000111110011

2.24 某CRC码(CRC)的生成多项式 G(x)=x3+x2+1,请判断下列CRC码是否存在错误。

(1) 0000000 (2) 1111101 (3) 1001111 (4) 1000110

解:G(x)=1101

(1) 0000000模2除1101,余数为:000,无错 (2) 1111101模2除1101,余数为:010,有错 (3) 1001111模2除1101,余数为:100,有错 (4) 1000110模2除1101,余数为:000,无错

2.25 选择题

(1) 某机字长64位,其中1位符号位,63位尾数。若用定点小数表示,则最大正小数为 B 。

--

A. +(1-2-64) B. +(1-2-63) C. 264 D. 263 (2) 设[x]补=1.x1x2x3x4x5x6x7x8,当满足 A 时,x>-1/2成立。

A. x1=1, x2~x8至少有一个为1 B. x1=0, x2~x8至少有一个为1 C. x1=1,x2~x8任意 D. x1=0, x2~x8任意 (3) 在某8位定点机中,寄存器内容为10000000,若它的数值等于-128,则它采用的数据表示为 B 。

A. 原码 B. 补码 C. 反码 D. 移码

(4) 在下列机器数中,哪种表示方式下零的表示形式是唯一的 B 。

A. 原码 B. 补码 C. 反码 D. 都不是 (5) 下列论述中,正确的是 D 。

A. 已知[x]原求[x]补的方法是:在[x]原的末位加1 B. 已知[x]补求[-x]补的方法是:在[x]补的的末位加1

C. 已知[x]原求[x]补的方法是:将尾数连同符号位一起取反,再在末位加1 D. 已知[x]补求[-x]补的方法是:将尾数连同符号位一起取反,再在末位加1

(6) IEEE754标准规定的32位浮点数格式中,符号位为1位,阶码为8位,尾数为23位,则它所能表示

的最大规格化正数为 A 。

-+-+

A. +(2-223)×2127 B. +(1-223)×2127

-++-

C. +(2-223)×2255 D. 2127-223 (7) 浮点数的表示范围取决于 A 。

A. 阶码的位数 B. 尾数的位数 C. 阶码采用的编码 D. 尾数采用的编码

(8) 在24×24点阵的汉字字库中,一个汉字的点阵占用的字节数为 D 。

A. 2 B. 9 C. 24 D. 72

(9) 假定下列字符码中有奇偶校验位,但没有数据错误,采用奇校验的编码是 B 。

A. 10011010 B. 11010000 C. 11010111 D. 10111000 (10) 在循环冗余校验中,生成多项式G(x)应满足的条件不包括 D 。

A. 校验码中的任一位发生错误,在与G(x)作模2除时,都应使余数不为0 B. 校验码中的不同位发生错误时,在与G(x)作模2除时,都应使余数不同 C. 用G(x)对余数作模2除,应能使余数循环

D. 不同的生成多项式所得的CRC码的码距相同,因而检错、校错能力相同

2.26 填空题

(1) 设某机字长为8位(含一符号位),若 [x]补=11001001,则x所表示的十进制数的真值为 ① ,

[1/4x]补= ② ;若 [y]移=11001001,则y所表示的十进制数的真值为 ③ ;y的原码表示 [y]原= ④ 。

答:① -55 ② 11110010 ③ +73 ④ 01001001

(2) 在带符号数的编码方式中,零的表示是唯一的有 ① 和 ② 。

答:① 补码 ② 移码 (3) 若[x1]补=10110111, [x2]原=1.01101 ,则数x1的十进制数真值是 ① ,x2的十进制数真值是 ② 。

答:① -73 ② -0.71875

(4) 设某浮点数的阶码为8位(最左一位为符号位),用移码表示;尾数为24位(最左一位为符号位),采

用规格化补码表示,则该浮点数能表示的最大正数的阶码为 ① ,尾数为 ② ;规格化最大负数

的阶码为 ③ ,尾数为 ④ 。(用二进制编码回答) (书上:最小负数的阶码为 ③ ,尾数为 ④ )

答:① 11111111 ② 011111111111111111111111

③ 11111111 ④ 100000000000000000000000

(5) 设有效信息位的位数为N, 校验位数为K,则能够检测出一位出错并能自动纠错的海明校验码应满足的关系是 ① 。

答:① 2K-1≥N+K

2.27 是非题

(1) 设[x]补=0.x1x2x3x4x5x6x7,若要求x>1/2成立,则需要满足的条件是x1必须为1,x2~x7至少有一个

为1。 √

(2) 一个正数的补码和它的原码相同,而与它的反码不同。 ×

(3) 浮点数的取值范围取决于阶码的位数,浮点数的精度取决于尾数的位数。 √

(4) 在规格化浮点表示中,保持其他方面不变,只是将阶码部分由移码表示改为补码表示,则会使该浮点

表示的数据表示范围增大。 ×

(5) 在生成CRC校验码时,采用不同的生成多项式,所得到CRC校验码的校错能力是相同的。 ×

第三章 作业解答

3.1 已知[x]补、[y]补,计算[x+y]补和[x-y]补,并判断溢出情况。

(1) [x]补=0.11011 [y]补=0.00011 (2) [x]补=0.10111 [y]补=1.00101 (3) [x]补=1.01010 [y]补=1.10001 解:(1) [x]补=0.11011 [y]补=0.00011 [-y]补=1.111101

[x+y]补=0.11011+0.00011=0.11110 [x-y]补=0.11011+1.111101=0.11000

(2)[x]补=0.10111 [y]补=1.00101 [-y]补=0.11011

[x+y]补=0.10111+1.00101=1.11100

[x-y]补=0.10111+0.11011=1.10010 溢出

(3)[x]补=1.01010 [y]补=1.10001 [-y]补=0.01111

[x+y]补=1.01010+1.10001=0.11011 溢出 [x-y]补=1.01010+0.01111=1.11001

3.2 已知[x]补、[y]补,计算[x+y]变形补和[x-y]变形补,并判断溢出情况。

(1) [x]补=100111 [y]补=111100 (2) [x]补=011011 [y]补=110100 (3) [x]补=101111 [y]补=011000 解:(1)[x]变形补=1100111 [y]变形补=1111100 [-y]变形补=0000100

[x+y]变形补=1100111+1111100=1100011 [x-y]变形补=1100111+0000100=1101011

(2)[x]变形补=0011011 [y]变形补=1110100 [-y] ]变形补=0001100

[x+y]变形补=0011011+1110100=0001111

[x-y]变形补=0011011+0001100=0100111 溢出

(3) [x]变形补=1101111 [y]变形补=0011000 [-y]变形补=1101000

[x+y]变形补=1101111+0011000=0000111

[x-y]变形补=1101111+1101000=1010111 溢出

3.3 设某机字长为8位,给定十进制数:x=+49,y=-74。试按补码运算规则计算下列各题,并判断溢出情况。

(1) [x]补+[y]补 (2) [x]补-[y]补

(3) [-x]补+[(5) [

11y]补 (4) [2x-y]补 2211x+y]补 (6) [-x]补+[2y]补 22解:[x]补=00110001 [y]补=10110110 [-y]补=01001010

(1) [x]补+[y]补=00110001+10110110=11100111 (2) [x]补-[y]补=00110001+01001010=01111011 (3) [-x]补+[(4) [2x-

1y]补=11001111+11011011=10101010 21y]补=01100010+00100101=10000111 溢出 211(5) [x+y]补=00011000+11011011=11110011

22(6) [-x]补+[2y]补 [2y]补溢出,故[-x]补+[2y]补的结果溢出

3.4 分别用原码一位乘法和补码一位乘法计算[x×y]原和[x×y]补。

(1) x=0.11001 y=0.10001 (2) x=0.01101 y=-0.10100 (3) x=-0.10111 y=0.11011 (4) x=-0.01011 y=-0.11010 解:(1)[x×y]原=0.0110101001 [x×y]补=0.0110101001

(2)[x×y]原=1.0100000100 [x×y]补=1.1011111100 (3)[x×y]原=1.1001101101 [x×y]补=1.0110010011 (4)[x×y]原=0.0100011110 [x×y]补=0.0100011110

3.5 分别用原码两位乘法和补码两位乘法计算[x×y]原和[x×y]补。

(1) x=0.11001 y=0.10001 (2) x=0.10101 y=-0.01101 (3) x=-0.01111 y=0.11101 (4) x=-0.01001 y=-0.10010 解: (1) [x×y]原=0.0110101001 [x×y]补=0.0110101001

(2)[x×y]原=1.0100010001 [x×y]补=1.1011101111 (3)[x×y]原=1.0110110011 [x×y]补=1.1001001101 (4)[x×y]原=0.0010100010 [x×y]补=0.0010100010

3.6 分别用原码不恢复余数法和补码不恢复余数法计算[x/y]原和[x/y]补。(1) (4)

(1) x=0.01011 y=0.10110

[x/y]原=0.10000 [x/y]补=0.10000 or [x/y]补=0.10001 (2) x=0.10011 y=-0.11101

[x/y]原=1.10100 [x/y]补=1.01100 or [x/y]补=1.01011 (3) x=-0.10111 y=-0.11011

[x/y]原=0.11100 [x/y]补=0.11101 or [x/y]补=0.11100 (4) x=+10110 y=-00110

[x/y]原=100011 [x/y]补=111101

3.7 在进行浮点加减运算时,为什么要进行对阶?说明对阶的方法和理由。 答:

3.8 已知某模型机的浮点数据表示格式如下: 0 数符 1 阶符 2 7 阶码 8 15 尾数

其中,浮点数尾数和阶码的基值均为2,均采用补码表示。

(1) 求该机所能表示的规格化最小正数和非规格化最小负数的机器数表示及其所对应的十进制真值。