【关键字】精品
第二章  习题解答
    1.设机器数的字长8位(含1位符号位),分别写出下列各二进制数的原码、补码和
反码:0,-0,0.1000,-0.1000,0.1111,-0.1111,1101,-1101。
    解:
    真值
      原码
    补码
    反码
        O
    -O
  0.1OOO
    -O.1OOO
    O.1111
    -O.1111
      110l
    -110l
    OOOOOOO0
1OOOOOOO
    O.1OOOOOO
    l.1OOOOOO
    O.1111000
    1.1111000
  00001101
    OOOOOOO0
      OOOOOOO0
      O.1OOOOOO
    1.1OOOOOO
    O.1111000
    l.0001000
      00001101
    OOOOOOO0
    O.1OOOOOO
    1.0111111
    O.1111000
    1.0000111
    00001101
2.写出下列各数的原码、补码和反码:7/16,4/16,1/16,±0,-7/16,-4/16,-1/16
解:
7/16=7*2-4=0.0111
4/16=4*2-4=0.0100
1/16=1*2-4=0.0001
真值                原码                补码              反码
7/16              0.0111          0.0111            0.0111
4/16              0.0100          0.0100            0.0100
1/16              0.0001          0.0001            0.0001
+0                O.0OOO          O.0OOO            O.0OOO
-
0                1.0OOO          O.0OOO            1.1111
-1/16            1.0OO1          1.1111            1.1110
-4/16            1.0100          1.1100            1.1011
-7/16            1.0111          1.1001            1.1000
  3.已知下列数的原码表示,分别写出它们的补码表示:[X1]=O.10100,[X2]=l.10111。
      解:[X1]=0.10100,[X2]=1.01001。
  4.已知下列数的补码表示,分别写出它们的真值:[X1]=O.10100,[X2]=1负数二进制补码运算法则.10111。
          解: X1=O.10100, X2=-0.01001。   
  5.设一个二进制小数X≥0,表示成X=0.a1a2a3a4a5a6,其中a1a6取“1”或“O”:
  (1)若要X>1/2a1a6要满足什么条件?
  (2)若要X1/8a1~a6要满足什么条件?
  (3)若要1/4X>1/16,a1a6要满足什么条件?
  解:(1) X>1/2的代码为:
0.100001~0.111111。
                    a1=1,a2+a3+a4+a5+a6=1。
  (2) X1/8的代码为:
0.001001~0.111111(1/863/64)
a1+a2=0, a3=1或a1=0,a2=1,或a2=1
(3)1/4X>1/16的代码为:
0.000101~0.01000(5/641/4)
a1+a2+a3 =0, a4=1,a5+a6=1 或a1+a2=0,a3=1 或a2=1,a1+a3+a4+a5+a6=0
6.设[X]=1.a1a2a3a4a5a6
    (1)若要X>-1/2a1a6要满足什么条件?
    (2)若要-1/8X-1/4,a1a6要满足什么条件?
  解:(1) X>-1/2的代码为:
1.000001~1.011111(-1/64-31/64)
                    a1=0,a2+a3+a4+a5+a6=1。
      (2) -1/8X-1/4的代码为:
1.0010001.01000(-1/8-1/4)
a1+a2 =0, a3=1或a2=1,a1+a3+a4+a5+a6=0
7.若上题中[X]改为[X],结果如何?
解:
(1) X>-1/2的代码为:
1.100001~1.111111(-31/64-1/64)
                    a1=1,a2+a3+a4+a5+a6=1。
        (2) -1/8X-1/4的代码为:
1.1100001.111000(-1/4-1/8)
a1*a2=1, a3=0或a1*a2*a3=1, a4+a5+a6=0
    8.一个n位字长的二进制定点整数,其中1位为符号位,分别写出在补码和反码两种情况下:
(1)模数;(2)最大的正数;
(3)最负的数;(4)符号位的权;
(5)-1的表示形式;(6)O的表示形式。
解:
                                补码                  反码
模数                      Mod2n                              Mod( 2n-1)
最大的正数                2n-1-1                  2n-1-1
最负的数                -2n-1                    -(2n-1-1)
符号位的权                2n-1                      2n-1
-1的表示形式                         
O的表示形式            00000000            00000000()
9.某机字长16位,问在下列几种情况下所能表示数值的范围:
(1)无符号整数
(2)用原码表示定点小数;
(3)用补码表示定点小数;
(4)用原码表示定点
    (5) 用补码表示定点整数。
    解:(1) 0≤X≤(216-1)
        (2) -(1-2-15)≤X≤(1-2-15)
      (3) -1≤X≤ (1-2-15)
        (4) -(215-1)≤X≤(215-1)
        (5) -215≤X≤(215-1)
    10.某机字长32位,试分别写出无符号整数和带符号整数(补码)的表示范围(用十进制数表示)。
    解:无符号整数:O≤X≤(232-1)。
        补码:    -231≤X≤(231-1)。
    11.某浮点数字长12位,其中阶符1位,阶码数值3位,数符1位,尾数数值7位,阶码以2为底,阶码和尾数均用补码表示。它所能表示的最大正数是多少?最小规格化正数是多少?绝对值最大的负数是多少?
解: 
最大正数=(1-2-7)×27=127
                最小规格化正数=2-1×2-8=2-9=1/512
                绝对值最大的负数-1×27=-128。
    12.某浮点数字长16位,其中阶码部分6位(含1位阶符),移码表示,以2为底;尾数部分10位(含1位数符,位于尾数最高位),补码表示,规格化。分别写出下列各题的二进制代码与十进制真值。
    (1)非零最小正数;
    (2)最大正数;
    (3)绝对值最小负数;
    (4)绝对值最大负数。
    解:(1)非零最小正数:  000000,0,0;2-1×2-32=2-33
        (2)最大正数:      111111,0,1;(1-2-9)×231
        (3)绝对值最小负数:000000,1,0;-(2-1+2-9)×2-32
        (4)绝对值最大负数:111111,1,000000000;-231
  13.一浮点数,其阶码部分为p位,尾数部分为q位,各包含1位符号位,均用补码表示;尾数基数r=2,该浮点数格式所能表示数的上限、下限及非零的最小正数是多少?写出表达式。
    解:上限(最大正数)=(1-2-(q-1))×(2)22(p-1)-1
        下限(绝对值最大负数)-(2)22(p-1)-1
        最小正数=2-(q-1)×(2)2-(p-1)
        最小规格化正数=2-1×(2){-2 (p-1)}
14.若上题尾数基数r=16,按上述要求写出表达式。
    解:上限(最大正数)=(1-2-(q-1))×(16)22(p-1)-1
        下限(绝对值最大负数)-(16)22(p-1)-1
        最小正数=2-(q-1)×(16)2-(p-1)
        最小规格化正数=16-1×(16){-2 (p-1)}
15.某浮点数字长32位,格式如下。其中阶码部分8位,以2为底,补码表示, 尾数部分一共24位(含1位数符),补码表示。现有一浮点代码为(8C5A3E00)16,试写出它所表示的十进制真值。
O        7    8    9          31
  阶码
数符
  尾数
解:(8C5A3EOO)16=1000 1100 0101 1010 0011 1110 0000 0000B