计算机组成原理(微课版)——第二章数据信息的表示部分课后习题答案及解析

2.2 选择题

(1)[2015] 由 3 个“1”和 5 个“0”组成的 8 位二进制补码,能表示的最小整数是 。

A.-126
B.-125
C.-32
D.-3

答案:B
解析: 8位二进制表示的补码中,需要有一个“1”来做符号位来表示该整数为负数,所以还剩下2个“1”和 5 个“0”;
考虑到补码转换为原码表示的值不同,由扫描法分析可得其余两个1在最低位时,转换为原码的绝对值是最大的,即如下表所示:

补码1 0000011
原码1 1111101
真值-125

(2)[2019] 考虑以下 C 语言代码:

unsigned short usi=65535;
short si=usi;

执行上述程序段后,si 的值是 _______。
A.-1
B.-32767
C.-32768
D.-65535

答案:A
解析:

(3)[2012] 假定编译器规定 int 和 short 类型长度分别为 32 位和 16 位,执行下列 C 语言语句:

unsigned short x=65530;unsigned int y=x;得到 y 的机器数为 _______。
A.0000 7FFAH
B.0000 FFFAH
C.FFFF 7FFAH
D.FFFF FFFAH

答案:B
解析:在这里插入图片描述

(4)[2016] 有如下 C 语言程序段:short si=-32767;unsigned short usi=si;执行上述两条语句后,usi的值为 _______。

A.-32767
B.32767
C.32768
D.32769

答案:D
解析在这里插入图片描述

(5)[2011]float 型数据通常用 IEEE754 单精度浮点数格式表示。若编译器将 float 型变量 x 分配在一个 32 位浮点寄存器 FR1 中,且 x=-8.25,则 FR1 的内容是 _______。

A.C104 0000H
B.C242 0000H
C.C184 0000H
D.C1C2 0000H

答案:A
解析: IEEE754标准下的浮点数格式如下表:

数符(1位)阶码(8位)尾数(23位)
0或者1表示移码表示原码表示

x = -8.25,转换为二进制原码为:-1000.01,转换为单精度浮点编码为: − 1.00001 × 2 3 -1.00001 \times{2^{3}} 1.00001×23
故其数符为:1
其阶码为3,加上偏移量127,得到其移码为130,转换为二进制为:1000 0010
其尾数为1.00001,由于IEEE754中小数点前面的“1”要省略掉,所以扩展成23位后的尾数为:000 0100 0000 0000 0000 0000
综上所述,可得到 IEEE754 单精度浮点数格式,如下表所示:

数符(1位)阶码(8位)尾数(23位)
11000 0010000 0100 0000 0000 0000 0000

将二进制1100 0001 0000 0100 0000 0000 0000 0000转换为十六进制为:C1040000H。

(6)[2013] 某数采用 IEEE754 单精度浮点数格式表示为 C640 0000H,则该数的值是 _______。

A.-1.5× 2 13 2^{13} 213
B.-1.5× 2 12 2^{12} 212
C.-0.5× 2 13 2^{13} 213
D.-0.5× 2 12 2^{12} 212

答案:A
解析: IEEE754标准下的浮点数格式如下表:

数符(1位)阶码(8位)尾数(23位)
0或者1表示移码表示原码表示

将十六进制转换为二进制,如下表所示:

十六进制C6400000
二进制11000110010000000000000000000000

根据IEEE754标准下的浮点数格式,将相应的位数填入对应位置,如下表所示:

数符(1位)阶码(8位)尾数(23位)
11000 1100100 0000 0000 0000 0000 0000

数符为1,说明该数为负数;
阶码为移码,转换为十进制为:128 + 12 = 140,然后减去偏移量127得到原码为:140 - 127 = 13;
尾数首先还原被省略的1,得到:1.100 0000 0000 0000 0000 0000,然后去掉最右边的“1”后面的“0”,得到:1.1,再转换为十进制为:1.5;
综上所述,得到该数的值为:-1.5 × 2 13 2^{13} 213

(7)[2012]float 型(即 IEEE754 单精度浮点数格式)能表示的最大正整数是 _______。

A. 2 126 − 2 103 2^{126}-2^{103} 21262103
B. 2 127 − 2 104 2^{127}-2^{104} 21272104
C. 2 127 − 2 103 2^{127}-2^{103} 21272103
D. 2 128 − 2 104 2^{128}-2^{104} 21282104

答案:D
解析: IEEE754标准下的浮点数格式如下表:

数符(1位)阶码(8位)尾数(23位)
0或者1表示移码表示原码表示

要得到最大正整数,其分析如下:
数符:必须为正数,那么数符为0;
阶码:再规格化单精度浮点数中,阶码的范围为:1~254,那么取最大值254,又因为阶码用移码表示,需要减去偏移量127,得到真值为254-127=127;
尾数:由于必须为整数,且阶码最大为128,尾数有23位,那么尾数23位一定全部为1,添加省略掉的“1”后转换为十进制为: 2 − 2 − 23 2-2^{-23} 2223
综上所述,表示的最大正整数为: ( 2 − 2 − 23 ) × 2 127 = ( 2 128 − 2 104 ) (2 - 2^{-23}) \times{2^{127}}=(2^{128}-2^{104}) (2223)×2127=(21282104)

本题易错点:
1.分析阶码时:8位二进制表示的数必须最大,即1111 1111,转换为十进制为255,但由于阶码用移码表示,得到其真值需要减去其偏移量127,那么转换为真值128,理论上似乎没有问题,但由于 IEEE754单精度浮点数的规范,规格化数的阶码范围只能在1~254之间(包括1和254) ,如下图所示:
在这里插入图片描述
2.分析尾数时:由于必须为整数,且阶码最大为128,尾数有23位,那么尾数23位一定全部为1,转换为十进制为: 2 24 − 1 2^{24}-1 2241(或者是 1 − 2 − 23 1-2^{-23} 1223);
忽略了尾数是一个1.xxxx的小数(小数点前面的1是省略掉的,必须还原回去),要得到1.xxxx,必须用2减去尾数表示的最小值,如果用1减去尾数的最小值,得到的是0.xxxx。

(8)[2018]IEEE754 单精度浮点格式表示的数中,最小规格化正数是 _______。

A.1.0× 2 − 126 2^{-126} 2126
B.1.0× 2 − 127 2^{-127} 2127
C.1.0× 2 − 128 2^{-128} 2128
D.1.0× 2 − 149 2^{-149} 2149

答案:A
解析: IEEE754标准下的浮点数格式如下表:

数符(1位)阶码(8位)尾数(23位)
0或者1表示移码表示原码表示

要得到最小规格化正数,其分析如下:
数符:必须为正数,那么阶符为0;
阶码:再规格化单精度浮点数中,阶码的范围为:1~254,那么取最小值1,又因为阶码用移码表示,需要减去偏移量127,得到真值为1-127= -126;
尾数:由于尾数有23位,要表示最小尾数,那么尾数23位一定全部为0,添加省略掉的“1”后转换为十进制为:1.0;
综上所述,表示的最小规格化正数为: 1.0 × 2 − 126 1.0 \times{2^{-126}} 1.0×2126

(9)[2014]float 型数据通常用 IEEE754 单精度浮点格式表示。假定两个 float 型变量 x 和 y 分别存放在 32 位寄存器 f1 和 f2 中,若 (f1)=CC90 0000H,(f2)=B0C0 0000H,则 x 和 y 之间的关系为 _______。

A.x < y 且符号相同
B.x < y 且符号不同
C.x > y 且符号相同
D.x > y 且符号不同

答案:A
解析: IEEE754标准下的浮点数格式如下表:

数符(1位)阶码(8位)尾数(23位)
0或者1表示移码表示原码表示

先分析x = (f1) = CC90 0000H,转换为二进制,如下表所示:

十六进制CC900000
二进制11001100100100000000000000000000

根据IEEE754标准下的浮点数格式,将相应的位数填入对应位置,如下表所示:

数符(1位)阶码(8位)尾数(23位)
11001 1001001 0000 0000 0000 0000 0000

分析y = (f2) = B0C0 0000H,转换为二进制,如下表所示:

十六进制B0C00000
二进制10110000110000000000000000000000

根据IEEE754标准下的浮点数格式,将相应的位数填入对应位置,如下表所示:

数符(1位)阶码(8位)尾数(23位)
10110 0001100 0000 0000 0000 0000 0000

数符:x和y的数符都为1,说明两个数都是负数,那么其绝对值越大的反而越小;
阶码:x(1001 1001) > y(0110 0001);
尾数:x(1.001)<y(1.1)
由于x的阶码大于y的阶码,那么x的绝对值大于y的绝对值,由于都是负数,那么x<y且符号相同。

(10)[2010] 假定变量 i、f、d 的数据类型分别为 int、float、double(int 用补码表示,float 和 double用 IEEE754 标准中的单精度和双精度浮点数据格式表示),已知 i=785,f=1.5678e3,d=1.5e100,若在 32位计算机中执行下列关系表达式,则结果为真的是 ______。

Ⅰ.i==(int)(float)i
Ⅱ.f==(float)(int)f
Ⅲ.f==(float)(double)f
Ⅳ.(d+f)-d==f
A.仅Ⅰ、Ⅱ
B.仅Ⅰ、Ⅲ
C.仅Ⅱ、Ⅲ
D.仅Ⅲ、Ⅳ

答案:B
解析:
在这里插入图片描述

(11)[2013] 用海明码对长度为 8 位的数据进行检错和纠错时,若能纠正一位错,则校验位数至少为______。

A.2
B.3
C.4
D.5

答案:C
解析: 假设校验位为r位,有效信息组为k位,那么有关系: 2 r − 1 ≥ k + r 2^{r}-1≥k + r 2r1k+r
长度为 8 位的数据,那么k=8,所以有 2 r − 1 ≥ 8 + r 2^{r}-1≥8 + r 2r18+r,则r至少为4。


2.5 已知数的补码表示形式,求数的真值。

[x] 补 =0.10010, [x] 补 =1.10010, [x] 补 =1.11111,
[x] 补 =1.00000, [x] 补 =0.10001, [x] 补 =1.00001。

答:
(1) [x]补=0.10010,符号位为0,为正数,其真值为:0.10010
(2) [x]补=1.10010,符号位为1,为负数,其真值为:-0.01110
(3) [x]补=1.11111,符号位为1,为负数,其真值为:-0.00001
(4) [x]补=1.00000,符号位为1,为负数,其真值为:-1.00000
(5) [x]补=0.10001,符号位为0,为正数,其真值为:0.10001
(6) [x]补=1.00001,符号位为1,为负数,其真值为:-0.11111


2.9 用 IEEE754 32 位单精度浮点数标准表示下列十进制数。

在这里插入图片描述

答:
(1)原值 = -53/8 = - (1000000-1011) / 1000 = -110.101
转换为1.M的形式为:-1.10101 × 2 2 2^{2} 22
数符:由于为负数,所以数符为1
阶码:加上偏移量127,转换为移码E为127+2=129=1000 0001
尾数:1.10101,省略小数点前面的1,并扩展后面部分到23位,M为101 0100 0000 0000 0000 0000
最终表示为:1100 0000 1101 0100 0000 0000 0000 0000 = C0D40000H

在这里插入图片描述
(3)原值转换为二进制为1111 1010 0000 0000
转换为1.M的形式:1.111101 × 2 15 2^{15} 215
数符:由于阶码为正数,所以数符为0
阶码:加上偏移量127,转换为移码E为15+127=142=1000 1110
尾数:1.111101,省略小数点前面的1,并扩展后面部分到23位,M为111 1010 0000 0000 0000 0000
最终表示为:0100 0111 0111 1010 0000 0000 0000 0000 = 477A0000H


2.10 求与单精度浮点数 43940000H 对应的十进制数。

答:
转换为二进制,如下表所示:

十六进制43940000
二进制01000011100101000000000000000000

IEEE754标准下的浮点数格式如下表:

数符(1位)阶码(8位)尾数(23位)
0100 0011 1001 0100 0000 0000 0000 0000

数符:为0
阶码:由移码减去偏移量127得: ( 10000111 ) 2 − 127 = 8 (10000111)_{2}-127=8 (10000111)2127=8
尾数:添加省略掉的“1”,去掉尾数最右边的1后面的0,得到:1.00101
综上得到浮点数为:1.00101 × 2 8 2^{8} 28= ( 100101000 ) 2 (100101000)_{2} (100101000)2=296。


2.14 将下列十进制数表示成浮点规格化数,阶码为 4 位,尾数为 10 位,各含 1 位符号,阶码和尾数均用补码表示。

(1)57/128; (2)-69/128。

答:
由题目得到如下表所示的浮点规格数表示:

阶符阶码尾符尾数
1位3位(补码表示)1位9位(补码表示)

(1)57/128;
原值 = (1000000 - 111) / 10000000 = 0.0111001
尾数规格化为:0.111001 × 2 − 1 2^{-1} 21
阶符:由于阶码为负数,所以阶符为1
阶码:-1转换为二进制原码并补足3位为:-001,转换为补码为:111
尾符:由于尾数为正数,所以尾符为0
尾数:补足9位为:1110 01000
所以浮点规格数为:1 111 0 1110 01000

(2)-69/128
原值 = -(1000000+101) / 10000000 = 0.1000101
尾数已经为规格化
阶符:由于阶码为0,所以阶符为0
阶码:0转换为二进制原码并补足3位为:000,转换为补码为:000
尾符:由于尾数为负数,所以尾符为1
尾数:补足9位为:1000 10100,转换为补码为:0111 01100
所以浮点规格数为:0 000 1 0111 01100


2.15 设有效信息为 01011011,分别写出其奇校验码和偶校验码。如果接收方收到的有效信息为01011010,说明如何发现错误。

答:在这里插入图片描述


2.16 由 6 个字符的 7 位 ASCII 字符排列,再加上水平和垂直偶校验位构成表 2.27 所示的行列结构(最后一列 HP 为水平奇偶校验位,最后一行 VP 为垂直奇偶校验位)。

在这里插入图片描述
则 X1、X2、X3、X4 处的比特分别为 ____;X5、X6、X7、X8 处的比特分别为 ____;X9、X10、X11、X12处的比特分别为 ____;Y1 和 Y2 处的字符分别为 ____ 和 ____。

答:
在这里插入图片描述


2.17 设 8 位有效信息为 01101110,试写出它的海明校验码。给出过程,说明分组检测方式,并给出指错字及其逻辑表达式。如果接收方收到的有效信息变成 01101111,说明如何定位错误并纠正错误。

答:
设有效检验位为r,其有效信息位k由题目可得:k=8
由公式 2 r − 1 ≥ k + r 2^{r}-1≥k+r 2r1k+r可得 2 r ≥ 9 + r 2^{r}≥9+r 2r9+r,所以r=4,即有效检验位为4位,海明码一共有k+r=12位;

海明码 H 12 H_{12} H12 H 11 H_{11} H11 H 10 H_{10} H10 H 9 H_{9} H9 H 8 H_{8} H8 H 7 H_{7} H7 H 6 H_{6} H6 H 5 H_{5} H5 H 4 H_{4} H4 H 3 H_{3} H3 H 2 H_{2} H2 H 1 H_{1} H1
映射关系 D 8 D_{8} D8 D 7 D_{7} D7 D 6 D_{6} D6 D 5 D_{5} D5 P 4 P_{4} P4 D 4 D_{4} D4 D 3 D_{3} D3 D 2 D_{2} D2 P 3 P_{3} P3 D 1 D_{1} D1 P 2 P_{2} P2 P 1 P_{1} P1
对应值01101110

G1校验组: P 1 ⊕ D 1 ⊕ D 2 ⊕ D 4 ⊕ D 5 ⊕ D 7 = P 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 1 = 0 {P_{1}}\oplus{D_{1}}\oplus{D_{2}}\oplus{D_{4}}\oplus{D_{5}}\oplus{D_{7}}={P_{1}}\oplus{0}\oplus{1}\oplus{1}\oplus{0}\oplus{1}=0 P1D1D2D4D5D7=P101101=0
P 1 = 1 P_{1}=1 P1=1
G2校验组: P 2 ⊕ D 1 ⊕ D 3 ⊕ D 4 ⊕ D 6 ⊕ D 7 = P 2 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 = 0 {P_{2}}\oplus{D_{1}}\oplus{D_{3}}\oplus{D_{4}}\oplus{D_{6}}\oplus{D_{7}}={P_{2}}\oplus{0}\oplus{1}\oplus{1}\oplus{1}\oplus{1}=0 P2D1D3D4D6D7=P201111=0
P 2 = 0 P_{2}=0 P2=0
G3校验组: P 3 ⊕ D 2 ⊕ D 3 ⊕ D 4 ⊕ D 8 = P 3 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 0 = 0 {P_{3}}\oplus{D_{2}}\oplus{D_{3}}\oplus{D_{4}}\oplus{D_{8}}={P_{3}}\oplus{1}\oplus{1}\oplus{1}\oplus{0}=0 P3D2D3D4D8=P31110=0
P 3 = 1 P_{3}=1 P3=1
G4校验组: P 4 ⊕ D 5 ⊕ D 6 ⊕ D 7 ⊕ D 8 = P 4 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 = 0 {P_{4}}\oplus{D_{5}}\oplus{D_{6}}\oplus{D_{7}}\oplus{D_{8}}={P_{4}}\oplus{0}\oplus{1}\oplus{1}\oplus{0}=0 P4D5D6D7D8=P40110=0
P 4 = 0 P_{4}=0 P4=0
所以海明码为:0110 0111 1001
如果接收方收到的有效信息变成 01101111,其海明码对应关系如下表所示

海明码 H 12 H_{12} H12 H 11 H_{11} H11 H 10 H_{10} H10 H 9 H_{9} H9 H 8 H_{8} H8 H 7 H_{7} H7 H 6 H_{6} H6 H 5 H_{5} H5 H 4 H_{4} H4 H 3 H_{3} H3 H 2 H_{2} H2 H 1 H_{1} H1
映射关系 D 8 D_{8} D8 D 7 D_{7} D7 D 6 D_{6} D6 D 5 D_{5} D5 P 4 P_{4} P4 D 4 D_{4} D4 D 3 D_{3} D3 D 2 D_{2} D2 P 3 P_{3} P3 D 1 D_{1} D1 P 2 P_{2} P2 P 1 P_{1} P1
对应值011001111101

G1 = P 1 ⊕ D 1 ⊕ D 2 ⊕ D 4 ⊕ D 5 ⊕ D 7 = 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 1 = 1 {P_{1}}\oplus{D_{1}}\oplus{D_{2}}\oplus{D_{4}}\oplus{D_{5}}\oplus{D_{7}}={1}\oplus{1}\oplus{1}\oplus{1}\oplus{0}\oplus{1}=1 P1D1D2D4D5D7=111101=1
G2 = P 2 ⊕ D 1 ⊕ D 3 ⊕ D 4 ⊕ D 6 ⊕ D 7 = 0 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 = 1 {P_{2}}\oplus{D_{1}}\oplus{D_{3}}\oplus{D_{4}}\oplus{D_{6}}\oplus{D_{7}}={0}\oplus{1}\oplus{1}\oplus{1}\oplus{1}\oplus{1}=1 P2D1D3D4D6D7=011111=1
G3 = P 3 ⊕ D 2 ⊕ D 3 ⊕ D 4 ⊕ D 8 = 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 0 = 0 {P_{3}}\oplus{D_{2}}\oplus{D_{3}}\oplus{D_{4}}\oplus{D_{8}}={1}\oplus{1}\oplus{1}\oplus{1}\oplus{0}=0 P3D2D3D4D8=11110=0
G4 = P 4 ⊕ D 5 ⊕ D 6 ⊕ D 7 ⊕ D 8 = 0 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 = 0 {P_{4}}\oplus{D_{5}}\oplus{D_{6}}\oplus{D_{7}}\oplus{D_{8}}={0}\oplus{0}\oplus{1}\oplus{1}\oplus{0}=0 P4D5D6D7D8=00110=0
所以检错码为G4G3G2G1=0011=3,若只有1位出错,则是海明码 H 3 H_{3} H3,也就是 D 1 D_{1} D1出错,将其对应位取反即可纠错。


2.18 设要采用 CRC 码传送数据信息 x=1001,当生成多项式为 G(x)=1101 时,请写出它的循环冗余校验码。若接收方收到的数据信息为 x’=1101,说明如何定位错误并纠正错误。

答:
在这里插入图片描述

  • 29
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 计算机组成原理微课是一门非常重要的计算机科学课程,本课程主要从计算机硬件结构、功能组成、工作原理、指令系统、总线及输入/输出系统等方面对计算机系统进行详细介绍。 根据《计算机组成原理微课》课程的教学安排,每一章节都分别附上了课后习题答案,这些练习题是帮助学员更好地理解和掌握知识的重要一环,下面将就部分课后习题答案做出回答。 1. 计算机的五个基本部件是哪些?请简单介绍他们的作用。 答:计算机的五个基本部件包括中央处理器(CPU)、存储器、输入设备、输出设备和系统总线。其中,CPU负责控制和计算数据的处理;存储器用于存储数据和指令;输入设备用于将外部数据输入到计算机中;输出设备则是将计算机处理后的结果输出到外部世界;系统总线则是负责连接计算机内部各种子系统以及与外部设备进行通信的接口。 2. 计算机存储体系中主要有几种类型存储?各自简单介绍。 答:计算机存储体系中主要包括两种存储器:主存和辅助存储器。主存是计算机中最主要的存储器,主要用于保存程序和数据;辅助存储器则是主存的扩展,可容纳大量的数据和程序,如硬盘、光驱、U盘等。 3. 内存地址总线、内存数据总线和内存控制总线的功能是什么? 答:内存地址总线用于传输CPU中产生的内存地址;内存数据总线用于传输在当前操作中从或向内存的数据;内存控制总线用于传输与存储器控制相关的控制信号,如启动存储器读(写)、保持等控制信号。 以上是《计算机组成原理微课》的课后习题部分答案,希望能对广大学子学习该课程有所帮助。 ### 回答2: 计算机组成原理微课提供了多种课后题,以帮助学生深入理解计算机组成原理的内容。其中的答案可以通过在CSDN网站上搜索“计算机组成原理微课课后答案”来获取。 在这些课后题中,学生需要回答如何设计和实现计算机系统的各个方面,包括处理器和汇编语言、存储器系统、总线系统和输入/输出设备。这些问题有助于学生加深对计算机组成原理的理解,并提高他们在实践中应用计算机知识的能力。 在回答这些问题时,学生应该结合计算机组成原理的基本概念和原理,并考虑系统整体的架构和性能需。另外,学生也需要掌握各种计算机组件之间的互动关系,以及处理器指令和操作码的含义。 综上所述,通过认真学习微课的内容和课后题,以及查找答案和实践练习,学生可以更好地理解计算机组成原理,并在实践中运用他们所学的知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值