《计算机组成原理》习题答案 (秦磊华)
于是得到:
S=0, e = 1,E= 1+01111111 =10000000,M = 10010010000111111011010 最后得到32位浮点数的二进制存储格式为:
0100 0000 0100 1001 0000 1111 1101 1010=(40490FDA)16
c) 首先将6400转换成二进制数: 64000=1100100000000
移动小数点,使其变成1.M的形式 1100100000000=1.100100000000×212 于是得到:
S=0, e = 12,E= 1100+01111111 =10001011,M = 1001 最后得到32位浮点数的二进制存储格式为:
0100 0101 1100 1000 0000 0000 0000 0000=(45C80000) 16
2.10 求与IEEE754 32位浮点数43940000H对应的十进制数。 解:
43940000H=(0100 0011 1001 0100 0000 0000 0000 0000)2 S=0,E=(10000111)2-127=8,M=1.00101
所以表示数为100101000,对应的十进制数为296。
2.11 求32位 IEEE754 浮点数能表示的最大数和最小数。
解:用IEEE754格式(E的取值范围:1~254,留出全0和全1分别表示0和无穷大)
31 30 23 22 0
S E M (1) 最大数的二进制表示:
0 11111110 11111111111111111111111 即 2(2-2) (2) 最小数的二进制表示:
1 11111110 11111111111111111111111 即 - 2(2-2)
2.12 设有两个正浮点数:N1=2m×M1,N2=2n×M2。
(1)若m>n,是否有N1>N2?
(2)若M1和M2是规格化的数,上述结论是否正确? 解:(1)不一定。 例如,N1=23×0.001,N2=22×0.01,此时m>n,却有N1=N2。
再如,N1=23×0.001,N2=22×0.1,此时m>n,却有N1<N2。 (2)正确。
因为浮点数规格化,要求尾数的最高位为非0数码,即当尾数的值不为零时,其绝对值应大于或等于(1/2)10。
那么M1和M2都必须是0.1× × ? ×的形式。这时,若m>n,则一定有N1>N2。
2.13 设二进制浮点数的阶码为3位,尾数是7位。用模2补码写出它们所能表示的最大正
第 9 页 共 70 页
127
-23
127
-23
《计算机组成原理》习题答案 (秦磊华)
数、最小正数、最大负数和最小负数,并将它们转换成十进制数。 解: 补码 真值
3-6
最大正数: 011;0.111111, 2×(1-2)
3-6
最小正数: 101;0.000001, 2×2
3-6
最大负数: 101;1.111111, -2×2
3-6
最小负数: 011;1.000000, -2×(1-2)
2.14 将下列十进制数表示成浮点规格化数,阶码4位,尾数10位,各含1位符号,阶码和
尾数均用补码表示。
(1)57/128 (2) —69/128 解:(1)57/128=(0.0111001)2,记x=0.0111001,则[x]原=[x]反=[x]补=0.0111001, 规格化:[x]补=0.111001*2-1
阶码的原码为:1001,因此补码为:1111 尾数为:0111001000
表示成浮点规格化数:1111 0111001000
(2)-69/128=(-0.1000101)2,记x=-0.1000101,则[x]原=1.1000101,[x]反=1.0111010,[x]补=1.0111011,
无需规格化,阶码为0000,尾数为1011101100 表示成浮点规格化数:0000 1011101100
2.15 设有效信息为01011011,分别写出奇校验码和偶校验码。如果接收方收到的有效信息为01011010,说明如何发现错误。 解:奇偶校验位分别为:0和1, 奇校验码:010110110 偶校验码:010110111
如果采用奇校验,则发送方发出的奇校验码x=010110110(前8位是有效信息位,最后一位是校验位),
如果接收方收到的x=010110100 (只有1位出错,最后一个0是校验位), 接收方按奇校验方式根据01011010计算得到的验位C’=1 ,与从信息中读到得校验码的取值不同,表明传送的信息发生了错误。
如果采用偶校验,利用相似的方法可以发现错误。
2.16由 6 个字符的 7 位 ASCII 编码排列,再加上水平和垂直偶校验位构成如表2.23的行列结构(最后一列为水平奇偶校验位,最后一行为垂直奇偶校验位)
表2.23 ASCII码交叉校验
字符
7 位 ASCII 码
1 X3 1 1 X8
HP 0 1 0 1 0
3 0 X1 X2 0 0 1 Y1 1 0 0 1 0 0 + X4 1 0 1 0 1 Y2 0 1 X5 X6 1 1 D 1 0 0 X7 1 0
第 10 页 共 70 页
《计算机组成原理》习题答案 (秦磊华)
= 0 X9 1 1 1 X10 VP 0 0 1 1 1 X11
1 1
1 X12
则 X1 X2 X3 X4 处的比特分别为 _1110_; X5 X6 X7 X8 处的比特分别为 _1000_; X9 X10 X11 X12 处的比特分别为 _1011_; Y1 和 Y2 处的字符分别为 __I__ 和 __7__。
解答思路:利用交叉奇/偶校验原理来确定各个X值,再查询ASCII码表获知 Y1 和 Y2是什么字符。
2.17 设8位有效信息为01101ll0,试写出它的海明校验码。给出过程,说明分组检测方式,并给出指误字及其逻辑表达式。如果接收方收到的有效信息变成01101111,说明如何定位错误并纠正错误。
解:被检验位有8位,设检验位有r位
因为:8+r<=2r -1 r=4;
设四位分别为P1,P2,P3,P4 海明码为:P1P20P3110P41110 P1:3,5,7,9,11 P2:3,6,7,10,11 P3:5,6,7,12 P4:9,10,11,12
所以 P1=1,P2=1 P3=0 P4=1 海明码为:110011011110
指错位G1:1,3,5,7,9,11 G2:2,3,6,7,10,11 G3:4,5,6,7,12 G4:8,9,10,11,12 G1=0,G2=0,G3=0,G4=0 图略。
2.18 设要采用CRC编码传送的数据信息x=1001,当生成多项式为G(x)=1101时,请写出它的循环校验码。若接收方收到的数据信息x’=1101,说明如何定位错误并纠正错误。
M(x)?X31001000011解:作模二除法: ??1111?G(x)11011101所以循环码为:1001011。 若接收到的数据信息x’=1101,的1改为0即可。
第 11 页 共 70 页
1101011011?1000?,所以是第2位出错,将第2位
G(x)1101 《计算机组成原理》习题答案 (秦磊华)
2.1 解释下列术语:
机器数 BCD码 有权码 校验码溢出 规格化 先行进位 状态寄存器 2.2 写出下列各数的原码、反码和补码:
0,―0,0.11010,―0.11011,―0.10000,―0.11111
2.3 已知[X]补形式为0.11010,1.01101,1.00100,求X及-[X]补。
2.4 设定点字数的补码形式为X0X1X2?X7,其中X0为符号位,求模为多少? 2.5 已知[X]补=10011110,求[X/2]补,[X/4]补,[2X]补,[4X]补。 2.6 分别写出十进制数756的8421码、2421码和余3码。 2.7 在数的浮点表示中,数的正负由什么决定?数的精度由什么决定?表示数的范围又由什么决定?
2.8 设被校验信息为10101101,试分别写出它的奇校验码和偶校验码。
2.9 8421码、余3码、2421码、ASCII码这些编码中哪些是有权码?哪些是无权码? 2.10 计算机中的数据可以分为哪几类?数值数据在计算机中有哪几种表示格式? 2.11 “BCD码就是二进制数”,这种说法对吗? 2.12 设8位被校验信息为01101110,试写出它的海明校验码并给出指误字及其逻辑表达式。 2.13 设被校验信息为1100,选用G(X)=X3+X+1为生成多项式,求(7、4)循环校验码。 2.14 已知浮点数,其中[X]补=1011 100000,阶码为4位,尾数为6位(各含一位符号位),求X。
第 12 页 共 70 页