免费智能真题库 > 历年试卷 > 程序员 > 2016年上半年 程序员 上午试卷 综合知识
  第21题      
  知识点:   定点数和浮点数   补码   补码表示   浮点数   原码   原码表示
  关键词:   32位   补码   浮点数        章/节:   数据的表示       

 
设32位浮点数格式如下。以下关于浮点数表示的叙述中,正确的是(21)。若阶码采用补码表示,为8位(含1位阶符),尾数采用原码表示,为24位(含1位数符),不考虑规格化(即不要求尾数的值位于[-0.5,0.5]),阶码的最大值为(22)。
 
 
  A.  浮点数的精度取决于尾数M的位数,范围取决于阶码E的位数
 
  B.  浮点数的精度取决于阶码E的位数,范围取决于尾数M的位数
 
  C.  浮点数的精度和范围都取决于尾数M的位数,与阶码E的位数无关
 
  D.  浮点数的精度和范围都取决于阶码E的位数,与尾数M的位数无关
 
 
 

 
  第19题    2015年下半年  
   52%
表示定点数时,若要求数值。在机器中唯一地表示为全0, 应采用(19)。
  第20题    2018年下半年  
   37%
设机器字长为8个二进制位,对于十进制数-128,其补码表示为( )。
  第20题    2020年下半年  
   49%
设码长为8,原码10000000所表示的十进制整数的值为( )。
   知识点讲解    
   · 定点数和浮点数    · 补码    · 补码表示    · 浮点数    · 原码    · 原码表示
 
       定点数和浮点数
        1)定点数
        (1)定点小数表示。
        小数点设在符号位(S)之后,其表示格式如下所示。
        
        设字长为n+1位,定点小数的数值表示范围如下。
        .原码表示:-(1-2-n)~+(1-2-n)。
        .反码表示:-(1-2-n)~+(1-2-n)。
        .补码表示:-1~+(1-2-n)。
        例如,(-0.25)10→(-0.01)2,以原码定义表示为10100000。
        (2)定点整数表示。
        定点整数分为(有)符号数和无符号数两种表示格式。
        .(有)符号数:小数点在符号位最末有效位之后,其表示格式如下。
        
        设字长为n+1位,符号数的数值表示范围如下。
        .原码表示:-(2-n-1)~+(2-n-1)。
        .反码表示:-(2-n-1)~+(2-n-1)。
        .补码表示:-2-n~+(2-n-1)。
        例如,(-10)10→(-1010)2,以原码定义表示为10001010。
        .无符号数:不设符号位,小数点在符号位最末有效位之后,其表示格式如下。
        
        设字长为n+1位,无符号数的数值表示范围为0≤N≤2n+1-1。
        例如,(255)10→(11111111)2,以原码定义表示为11111111。
        2)浮点数
        .构成:阶码E,尾数M,符号位S,基数R
        N=(-l)S×M×RE
        
        .规格化:为了在尾数中表示最多的有效数据位,也为了数据表示的唯一性而定义的规则。如将尾数的绝对值限制在区间[0.5, 1]中,当尾数(M)用补码表示时,有以下两种情况。
        .M≥0时,尾数规格化的形式:M=0.1X…X
        .M<0时,尾数规格化的形式:M=1.0X…X
        .浮点数的表示范围:尾数的位数决定数的精度,阶码的位数决定数的范围。而表示范围与机器的具体的表示方法及字长有关,下面举例说明。
        例:R为基数,有p位阶码和m位二进制尾数代码的浮点数,阶码采用二进制正整数编码表示,求数值的表示范围。
        解:最小规格化尾数:1/R
        最大规格化尾数:1-2-m
        最大阶码:2p-1
        最小阶码:0
        最小值:1/R
        最大值:R2p-1(1-2-m
        注:本例中没有符号位,也没有考虑阶码为负的情况。如果考虑这些因素就要考虑阶码和尾数的编码方式。
        .浮点数的溢出:当运算的结果超出该机器浮点数可表示的范围时,则产生浮点数溢出,浮点数可表示的范围如下图所示。比如上例中,当浮点数的运算结果小于1/R(或大于R2p-1(1-2-m))时,则产生正下溢(或正上溢)。
        
        浮点数的表示范围
        .浮点数的实例。设浮点数格式如下:
        
        则数110.011(B)=+0.110011×2+11(规格化尾数)=0 110011×2011(机器数格式)可表示为:
        
        3)浮点数工业标准IEEE 754
        规格化数格式如下:
        (-l)S×l.f×2E
        其中,1位数符(S):正数为0,负数为1;除去了最高位的尾数(f)为原码表示;阶码(E)为特殊移码表示。
        IEEE 754浮点数的范围如下表所示。
        
        IEEE 754浮点数的表示范围
        例:将IEEE 754标准的精度浮点数0 10000110 01100000001000000000000转换为真值。
        解:将特殊移码表示阶码转换为真值阶码,因为E=10000110-01111111=00000111,所以E=7;因为f=01100000001000000000000,所以1.f=1.01100000001;将1.f右移7位(因为E=7)=(10110000.0001)2=176.0625。
 
       补码
        补码的符号表示法和原码相同,0表示正数,1表示负数。正数的补码和原码、反码相同,就是二进制数值本身。负数的补码是这样得到的:将数值部分按位取反,再在最低位加1。补码的补码就是原码。
        因为正数的补码和原码相同,所以采用补码能正确进行加法运算。又因为负数的补码等于反码加1,所以负数的补码具有反码的特性,可以正确进行减法运算,因此补码是最适合进行数字加减运算的。
        由于补码能使符号位与有效值部分一起参加运算,从而简化运算规则,同时它也使减法运算转换为加法运算,进一步简化计算机中运算器的电路,这使得在大部分计算机系统中,数据都使用补码表示。
 
       补码表示
        数值X的补码记作[X],如果机器字长为n,则最高位为符号位,0表示正号,1表示负号,其余的n-1位表示数值。正数的补码与其原码和反码相同,负数的补码则等于其反码的末尾加1。在补码表示中,0有唯一的编码:[+0]=[-0]=00000000。
 
       浮点数
        浮点数是指小数点位置不固定的数,浮点表示法能表示更大范围的数。在十进制中,一个实数可以写成多种表示形式。例如,83.125可写成103×0.083125或104×0.0083125等。同理,一个二进制数也可以写成多种表示形式。例如,二进制数1011.10101可以写成24×0.101110101、25×0.0101110101或26×0.00101110101等。
        一个含小数点的二进制数N可以表示为更一般的形式:
        N=2E×F
        其中,E称为阶码,F为尾数,这种表示数的方法称为浮点表示法。
        在浮点表示法中,阶码通常为带符号的纯整数,尾数为带符号的纯小数。浮点数的表示格式一般如下:
        
        显然,一个数的浮点表示不是唯一的。当小数点的位置改变时,阶码也相应改变,因此可以用多种浮点形式表示同一个数。
        浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。
        为了提高数据的表示精度,当尾数的值不为0时,规定尾数域的最高有效位应为1,这称为浮点数的规格化表示,否则需修改阶码左移或右移小数点的位置,使其变为规格化数的形式。
 
       原码
        原码表示又称符号-数值表示法。正数的符号位用0表示,负数的符号位用1表示,数值部分保持不变。采用原码表示法简单易懂,用原码进行加法运算可以非常方便、直观地得到正确的运算结果,但如果直接进行减法运算则会出问题。
 
       原码表示
        数值X的原码记为[X],如果机器字长为n(即采用n个二进制位表示数据),则最高位是符号位,0表示正号,1表示负号,其余的n-1位表示数值的绝对值。数值零的原码表示有两种形式:[+0]=00000000,[-0]=10000000。
   题号导航      2016年上半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第21题    在手机中做本题