免费智能真题库 > 历年试卷 > 程序员 > 2014年下半年 程序员 上午试卷 综合知识
  第19题      
  知识点:   机器数和码制   数制及其转换   补码   反码
  关键词:   补码   反码   十六进制        章/节:   数据的表示       

 
机器字长为8位,定点整数X的补码用十六进制表示为B6H,则其反码用十六进制表示为(19)。
 
 
  A.  CAH
 
  B.  B6H
 
  C.  4AH
 
  D.  B5H
 
 
 

 
  第19题    2009年上半年  
   43%
若8位二进制数能被4整除,则其最低2位(19)。
  第20题    2019年上半年  
   48%
对于十进制数-1023,至少需要( )个二进制位表示该数(包括符号位)。
  第20题    2018年下半年  
   37%
设机器字长为8个二进制位,对于十进制数-128,其补码表示为( )。
   知识点讲解    
   · 机器数和码制    · 数制及其转换    · 补码    · 反码
 
       机器数和码制
        各种数据在计算机中的表示形式称为机器数,其特点是采用二进制计数制,数的符号用0、1来表示,小数点则隐含表示而不占位置。真值是机器数所代表的实际数值。
        机器数分无符号数和带符号数两种。无符号数表示正数,没有符号位。对于无符号数,若约定小数点的位置在机器数的最低位之后,则是纯整数;若约定小数点位置在最高位之前,则是纯小数。对于带符号数,最高位是符号位,其余位表示数值,若约定小数点的位置在机器数的最低位之后,则是纯整数;若约定小数点的位置在最高数值位之前(符号位之后),则是纯小数。
        为方便运算,带符号的机器数可采用原码、反码和补码等不同的编码方法,这些编码方法称为码制。真值的符号数字化:我们用"+"和"-"来表示正负数,而计算机则将二进制数的最高位设置成符号位,通常用"0"表示正数,"1"表示负数。
        1)原码
        规则:最高位为符号位,"0"表示正数,"1"表示负数。对数0则有"+0"和"-0"两种表示。
        
        对n+1位字长用以表示整型数值的范围:-2n+l≤X≤2n-l。
        2)反码
        规则:最高位为符号位,"0"表示正数,"1"表示负数。正数与原码相同,负数则要将除符号位的其他位按位取反。对数0则有"+0"和"-0"两种表示。
        
        对n+1位字长用以表示整型数值的范围:-2n+l≤X≤2n-l。
        3)补码
        规则:最高位为符号位,"0"表示正数,"1"表示负数。正数与原码相同,负数则要将除符号位的其他位按位取反后加1。对数0只有"0"一种表示。
        
        对n+1位字长用以表示整型数值的范围:-2nX≤2n-1。
        补码运算的优点:将减法运算变成加法运算(因为运算器中只有加法器)。
        例如:96-20=76
        最高位的进位则自然丢失
        4)移码
        规则:最高位为符号位,"1"表示正数,"0"表示负数。
        当-2nX<2n时,[X=2n+x
        数值范围:-2nX≤2n-1。
        特点:保持了数据原有的大小顺序,便于进行比较操作。
        以上介绍的4种编码方法(设字长为4位,最高位为符号位)的对应关系如下表所示。
        
        符号数的四种编码表示
 
       数制及其转换
        按进位的方法进行计数,称为进位计数制。在采用进位计数制的数字系统中,如果只用r个基本符号来表示数值,则称其为r进制。每个数都可以用基数、系数和位数的形式来表示,即
        N=mn-1Kn-1+mn-2Kn-2+…+m0K0+m-1K-1+m-2K-2+…
        .基数(K):是最大进位数(进制数),数制的规则是逢K进1。例如,十进制基数为10,六十进制(时间)的基数为60等。
        .系数(m):每个数位上的值,取值范围为0~K-1。例如,234中百位系数为2,十位系数为3,个位系数为4。
        .位数(n):各种进制数的个数。例如,十进制数234的位数为3,二进制数11010011的位数为8。
        例如:(234)10=2×102+3×101+4×l00(式中:m2=2,m1=3,m0=4;K=10;n=3)。
        显然,一个任意进制的数都可以按上述方法表示为其他进制的数。下表列出了计算机中常用的几种数制的对应关系。
        
        计算机常用数制的对应关系
        
        数制转换主要有以下几种。
        1)r进制转换成十进制
        方法:
        ana1a0·a-1a-m(r)=a*rn+…+a*rl+a*r0+a*r-1+…+a*r-m
        例如:
        10101(B)=1×24+1×22+1×20=21
        101.11(B)=1×22+1×20+1×2-1+l×2-2=5.75
        101(O)=1×82+1×80=65
        71(O)=7×81+l×80=57
        101A(H)=1×l63+1×l61+10×l60=4122
        2)十进制转换成r进制
        方法:
        .整数部分:除以r取余数,直到商为0,余数从右到左排列。
        .小数部分:乘以r取整数,整数从左到右排列。
        例如:
        
        3)八进制和十六进制转换成二进制
        方法:
        .每一个八进制数对应二进制的三位。
        .每一个十六进制数对应二进制的四位。
        例如:
        
        4)二进制转换成八进制和十六进制
        方法:
        .整数部分:从右向左进行分组。
        .小数部分:从左向右进行分组。
        .转换成八进制3位一组,不足补零。
        .转换成十六进制4位一组,不足补零。
        例如:
        
 
       补码
        补码的符号表示法和原码相同,0表示正数,1表示负数。正数的补码和原码、反码相同,就是二进制数值本身。负数的补码是这样得到的:将数值部分按位取反,再在最低位加1。补码的补码就是原码。
        因为正数的补码和原码相同,所以采用补码能正确进行加法运算。又因为负数的补码等于反码加1,所以负数的补码具有反码的特性,可以正确进行减法运算,因此补码是最适合进行数字加减运算的。
        由于补码能使符号位与有效值部分一起参加运算,从而简化运算规则,同时它也使减法运算转换为加法运算,进一步简化计算机中运算器的电路,这使得在大部分计算机系统中,数据都使用补码表示。
 
       反码
        反码的符号位表示法与原码相同,即符号0表示正数,符号1表示负数。与原码不同的是,反码数值部分的形成和它的符号位有关。正数反码的数值和原码的数值相同,而负数反码的数值是原码的数值按位求反。
        也就是说,把原码对除符号位外的其余各位逐位取反就产生了反码。所以反码与原码的特性刚好相反,反码的减法运算能正确得到结果,但直接进行加法运算无法得到正确结果。
   题号导航      2014年下半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第19题    在手机中做本题