3.12 在汉字系统中,有哪几种编码?它们各自有什么作用? 略。
3.13 汉字库中存放的是汉字的哪一种编码?汉字库的容量如何计算? 答:汉字库中存放的是汉字字模码。汉字库的容量可按下列: 存储每个汉字字模点阵所需的字节数×汉字数×点阵方法数。
3.14 在一个应用系统中,需要构造一个包含了100个汉字的汉字库,假
设采用16×16的汉字字形,问:该汉字库所占存储容量是多少字节?一篇由50个汉字构成的短文,需要占用多少字节的存储容量来存储其纯文本?
答: 16×2×100=3200字节;2 ×50=100字节。
3.15 汉字系统的几种编码中,对于某个汉字来说,是 惟一的。
A. 输入码 B. 字模码 C. 机内码 答:C。
3.16 若下面的奇偶校验码均正确,请指出哪些是奇校验码,哪些是偶校
验码。
(1) 10110110 (2)01111110 (3)11011000 (4)10100001 答:奇校验码:(1)、(4);偶校验码:(2),(3)。
3.17 在7位的ASCII码的最高位前面添加一位奇(偶)校验位后,即可
构成8位的ASCII码的奇(偶)校验码。假设字符“A”的这样的奇(偶)校验码为41H,则它是(1);字符“C”的这样的(1)是(2)。 (1): A. 奇校验码 B. 偶校验码 (2): A. 43H B. 87H C. C3H D. 86H 答:(1)B; (2)C。
3.18 对于3.6.2节所介绍的k=8,r=4的能纠错一位的海明码,若编码为
100110111100,试判断该海明码是否有误,若有,请纠正,并写出其8位正确的有效信息。
答: 10000111
3.19 试设计有效信息为10位的能纠错一位的海明码的编码和译码方案,
并写出有效信息0110111001的海明码。 答:k=10,r=4的海明码的排列如下:编码:
H14 H13 H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 D10 D9 D8 D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P1
P4= D10?D9?D8?D7?D6?D5 P3= D10?D9?D8?D4?D3?D2
P2= D10?D7?D6?D4?D3?D1
P1= D9?D7?D5?D4?D2?D1 译码:
S4=P4? D10?D9?D8?D7?D6?D5
9
S3=P3? D10?D9?D8?D4?D3?D2
S2=P2? D10?D7?D6?D4?D3?D1
S1=P1? D9?D7?D5?D4?D2?D1
指误字:S4S3S2S1
效信息0110111001的海明码: 01101101001110
3.20 在3.6.2节所介绍有效信息为8位的能纠错一位的海明码基础上,思
考如何改进,使其能够达到检错两位并能纠错一位的校验能力。
答:略
设生成多项式为X3+X+1(即1011B),请计算有效数据10101的CRC编码。
答:101010101
3.21 试分析3.3节介绍的三种奇偶校验、海明校验和CRC校验三种校验
码的检错纠错能力,它们的码距各为多少?
答:奇偶校验码只能检错,可检单个、奇数个错,码距=2;
海明校验可以纠一位错。 CRC校验可以纠一位错。
3.22 在Motorola系列的微处理器中,数据存放在内存的规则是高位字节
存放在低地址单元的,对照图3.10写出各数据在这种情况下的存储方式。
略
习题4
3.23 设X=0.1101,Y= -0.0110,求:
(1)[X]补
(2)[-X]补
(3)[2X]补 (7)[Y]补 (11)[Y/2]补
(4)[-2X]补 (8)[-Y]补 (12)[-Y/2]补
(5)[X/2]补 (9)[2Y]补 (13)[-Y/4]补
1. (1) [X]补= 0.1101 (2) [-X]补= 1.0011 (3) [2X]补= 0.1010 溢出 (4) [-2X]补= 1.0110 溢出 (5)[X/2]补= 0.0110
10
(6)[-X/2]补 (10)[-2Y]补
(6)[-X/2]补= 1.1001 (7)[Y]补= 1.1010
3.24 已知X和Y,用变形补码计算X+Y和X-Y,并指出运算结果是否溢出: (1) X=0.11011,Y=0.11111 (2) X=-0.1101,Y=0.0110
答:.
3.25 试使用两个4位二进制加法器和若干逻辑门电路,设计一位余3码编码
的十进制加法器。(提示:余3码加法的校正规则为:当余3码编码的两个数直接相加后,若结果有进位,则和数加3校正;否则和数减3校正) 图在word下不好画:略: 3.26 使用原码一位乘法计算X*Y: (1) X=0.11101,Y=0.01111 (2) X=-0.10011,Y=0.11010
答: (1)[X*Y]原 =0.0110110011 (2)[X*Y]原 = 1.0111101110 3.27 使用补码Booth乘法计算X*Y: (1) X=0.01111,Y=-0.11101 (2) X=-0.10011,Y=-0.11010
答:(1)[X*Y]补 =1.1001001101 (2)[X*Y]补 =0.0111101110
3.28 分别使用原码恢复余数除法和原码加减交替除法计算X/Y: (1) X=0.0111,Y=0.1101 (2) X=0.1011,Y=-0.1110
答:(1)原码恢复余数除法: [Qs]原= 0.1000 ; [R]原=0.00001000 原码加减交替除法: [Qs]原= 0.1000; [R]原=0.00001000
11
(8) [-Y]补= 0.0110 (9) [2Y]补=1.0100 (10)[-2Y]补=0.1100 (11)[Y/2]补=1.1101 (12)[-Y/2]补= 0.0010 (13) [-Y/4]补= 0.0001
(1) [X+Y]补: 溢出 [X-Y]补= 1.11100 (2) [X+Y]补=1.1001 [X-Y]补: 溢出
(2)原码恢复余数除法: [Qs]原= 1.1100 ; [R]原=0.00001000 原码加减交替除法: [Qs]原= 1.1100 ; [R]原=0.00001000 3.29 使用补码不恢复余数除法计算X/Y: (1) X=0.0111,Y=0.1101 (2) X=0.1011,Y=-0.1110
答:(1)[Qs]补= 0.1001; [R]补=0.00001110 (2)[Qs]补= 1.0011 ; [R]补=0.00001100
3.30 设浮点数的格式为:阶码5位,尾数6位,均用补码表示,请计算X+Y
和X-Y。(阶码和尾数均用补码计算)。 (1) X= -1.625,Y=5.25 (2) X=15/64,Y= -29/256
答:(1)[X+Y]补 =0,0010 0.11101; X+Y=0.11101×2 (2) [X+Y]补 =1,1101 0.11111; X+Y=0.11111×2 [X-Y]补 =1,1111 0.10110; X-Y=0.101102
3.31 设浮点数的格式为:阶码5位,用移码表示,尾数6位,用补码表示,
请计算X*Y和X/Y(阶码用移码计算,尾数用任何一种机器数的串行乘除算法计算)。 (1) X=5.25,Y= -1.625 (2) X= -29/256,Y=15/64
答:(1) [X×Y]浮=1,0100 1.01111; X*Y=-0.10001×2
[X/Y]浮= 1,0010 1.00111; X/Y=-0.11001×2[X/Y]浮= 0,1111 1.00001; X/Y=-0.11111×2
(2) [X×Y]浮=0,1011 1.00101; X*Y=-0.11011×2
01000010
[X-Y]补 =0,0011 1.00101; X-Y=-0.11011×2
- 0001
0011
- 0011
0010
-0101
-0001
3.32 假设浮点数加减运算时,尾数采用变形补码(模4补码)进行运算,
运算结果形式为:MS1 MS2.M1 …… Mn,选择正确的答案写在横线上: (1) 若尾数运算结果形式满足 条件时,结果需要左规; (2) 若尾数运算结果形式满足 条件时,结果需要右规(1次); (3) 若尾数运算结果形式满足 条件时,结果不需要规格化;
A.MS1MS2.M1=00.0
D.MS1MS2.M1=01.1 G.MS1MS2.M1=11.0
B.MS1MS2.M1=00.1 E.MS1MS2.M1=10.0 H.MS1MS2.M1=11.1
C.MS1MS2.M1=01.0 F.MS1MS2.M1=10.1
答:(1)A, H (2)D,E,F (3)B 3.33 浮点数运算的溢出判断,取决于 。
12