最小正数 规格化最小正数 最大正数 最大负数 规格化最大负数 最小负数 机器数形式 0 0 0000 0000000001 0 0 0000 1000000000 0 1 1111 1111111111 1 0 0000 1111111111 1 0 0000 0111111111 1 0 1111 0000000000 十进制真值 2-10×2-16 2×2(1-2-2-1-10-1-16 15)×2 -16-10×2-10 -16-(2+2)×215 -1×2
2.10 设2.9题中的浮点数格式中,阶码与尾数均用补码表示,分别写出下面用十六进制书写的浮点机器数所对应的十进制真值。
(1) FFFFH; (2) C400H; (3) C000H。
---
答:(1) FFFFH=1 11111 1111111111=-210×21=-211
--
(2) C400H=1 10001 0000000000=-1×215=-215
--
(3) C000H=1 10000 0000000000=-1×216=-216
2.11 用十六进制写出下列十进制数的IEEE754标准32位单精度浮点数的机器数的表示形式。
(1) 0.15625 (2) -0.15625 (3) 16 (4) -5 答:
-
(1)(0.15625)10=(0. 00101)2=1.01×23
阶码E=127+(-3)=124=(1111100)2=01111100 机器数形式:0 01111100 01000000000000000000000 十六进制形式:3E200000H
-
(2) (-0.15625)10=(-0. 00101)2=-1.01×23 阶码E=127+(-3)=124=(1111100)2=01111100 机器数形式:1 01111100 01000000000000000000000 十六进制形式:BE200000H
(3) (16)10=(10000)2=-1.0000×24 阶码E=127+4=131=(10000011)2
机器数形式:0 10000011 00000000000000000000000 十六进制形式:41800000H
(4) (-5)10=(-101)2=-1.01×22 阶码E=127+2=129=(10000001)2
机器数形式:1 10000001 01000000000000000000000 十六进制形式:C0A00000H
2.12 用十六进制写出写出IEEE754标准32位单精度浮点数所能表示的最小规格化正数和最大规格化负数的机器数表示形式。
-
答:若1≤E≤254,则 N=(-1)S×2E127×(1.M) ,为规格化数。
最小规格化正数的机器数表示形式:S=0,E=1,M=00000000000000000000000 0 00000001 00000000000000000000000=00800000H
最大规格化负数的机器数表示形式:S=1,E=1,M=00000000000000000000000 1 00000001 00000000000000000000000=80800000H
2.13 写出下列十六进制的IEEE单精度浮点数代码所代表的十进制数值。
(1) 42E48000 (2) 3F880000 (3) 00800000 (4) C7F00000 解:
(1) 42E48000=0 10000101 11001001000000000000000 指数=(10000101)2-127=133-127=6
M=1.11001001000000000000000=1+(1/2+1/4+1/32+1/256) 十进制数值N=[1+(1/2+1/4+1/32+1/256)]×26=114.25 (2) 3F880000=0 01111111 00010000000000000000000 指数=(01111111)2-127=127-127=0
M=1.00010000000000000000000=1+1/16=1.0625 十进制数值N=1.0625×20=1.0625
(3) 00800000=0 00000001 00000000000000000000000 指数=(00000001)2-127=1-127=-126 M=1.00000000000000000000000
-
十进制数值N=1×2126
(4) C7F00000=1 10001111 11100000000000000000000 指数=(10001111)2-127=143-127=16
M=1. 11100000000000000000000=1+(1/2+1/4+1/8)=1.875
161514131316
十进制数值N=-(2+2+2+2)=-15×2=-122880=-1.875×2
2.14 设有两个正浮点数:N1?S1?21,N2?S2?22 (1) 若e1>e2,是否有N1>N2
(2) 若S1、S2均为规格化数,上述结论是否正确? 答:(1)不一定
(2)正确
2.15 设一个六位二进制小数x=0.a1a2a3a4a5a6,x≥0,请回答:
ee1,a1a2a3a4a5a6需要满足什么条件? 81(2) 若要x>,a1a2a3a4a5a6需要满足什么条件?
211(3) 若要≥x>,a1a2a3a4a5a6需要满足什么条件?
416(1) 若要x≥解:
1,a1a2a3a4a5a6需要满足:a1a2a3至少有一个1 81(2)要x>,a1a2a3a4a5a6需要满足:a1=1,且a2a3a4a5a6至少有一个为1(不为全0)
211(3)要≥x>,a1a2a3a4a5a6需要满足:
416(1)要x≥
a1=0且 ① a2=1,a3a4a5a6为全0
② a2=0且a3=1,a4a5a6任意
或a2=0且a3=0,a4=1,a5a6至少有一个为1
2.16 表示一个汉字的内码需几个字节?表示一个32×32点阵的汉字字形码需几个字节?在计算机内部如何
区分字符信息与汉字信息? 答:① 一个汉字的内码需2个字节。
② 表示一个32×32点阵的汉字字形码需4×32=128个字节。
③ 在计算机内部利用字节的最高位是0还是1区分字符信息与汉字信息.
2.17 分别用前分隔数字串、后嵌入数字串和压缩的十进制数串形式表示下列十进制数。
(1) +74 (2) -639 (3) +2004 (4) -8510 解:
(1) +74 前分隔数字串
+74
2B “+” 37 “7” 0000 “0”
37 “7” 34 “4” 0111 “7”
0100 “4”
1100 “+”
34 “4”
后嵌入数字串
+74
压缩的十进制数串
+74
(2) -639 前分隔数字串
-639
2D “-“ 36 “6” 0110 “6”
36 “6” 33 “3”
33 “3” 79 “9”
1001 “9”
1101 “-” 39 “9”
后嵌入数字串
-639
压缩的十进制数串 -639
0011 “3”
(3) +2004 前分隔数字串
+2004
2B “+” 32 “2” 0000 “0”
32 “2” 30 “0”
30 “0” 30 “0” 0010 “2”
30 “0” 34 “4” 0000 “0”
0000 “0”
0100 “4”
1100 “+”
34 “4”
后嵌入数字串
+2004
压缩的十进制数串
+2004
(4) -8510 前分隔数字串
-8510
2D “-“ 38 “8” 0000 “0”
38 “8” 35 “5”
35 “5” 31 “1” 1000 “8”
31 “1” 70 “0” 0101 “5”
0001 “1”
0000 “0”
1101 “-”
30 “0”
后嵌入数字串
-8510
压缩的十进制数串 -8510
2.18 数据校验码的实现原理是什么? 答:。数据校验码的实现原理是在正常编码中加入一些冗余位,即在正常编码组中加入一些非法编码,当合法数据编码出现某些错误时,就成为非法编码,因此就可以通过检测编码是否合法来达到自动发现、定位乃至改正错误的目的。在数据校验码的设计中,需要根据编码的码距合理地安排非法编码的数量和编码规则。
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位(最左一位为符号位),采
用规格化补码表示,则该浮点数能表示的最大正数的阶码为 ① ,尾数为 ② ;规格化最大负数