免费智能真题库 > 历年试卷 > 程序员 > 2009年上半年 程序员 上午试卷 综合知识
  第19题      
  知识点:   计算机中数据的表示
  关键词:   二进制数   二进制        章/节:   数据的表示       

 
若8位二进制数能被4整除,则其最低2位(19)。
 
 
  A.  不可能是01、00
 
  B.  只能是10
 
  C.  可能是01、00
 
  D.  只能是00
 
 
 

 
  第21题    2016年下半年  
   39%
已知x = -53/64,若采用8位定点机器码表示,则[x]=(21),[x]=(22)。
  第22题    2011年下半年  
   44%
已知x=-97/128,若采用8位机器码表示,[x]=(22) 。
  第20题    2018年下半年  
   37%
设机器字长为8个二进制位,对于十进制数-128,其补码表示为( )。
   知识点讲解    
   · 计算机中数据的表示
 
       计算机中数据的表示
        在计算机中,数字是以一串"0"或"1"的二进制代码来表示的,这是计算机唯一能识别的数据形式。数据必须转化成二进制代码来表示,也就是说,所有需要计算机加以处理的数字、字母、文字、图形、图像、声音等信息(人识数据)都必须采用二进制编码(机识数据)来表示和处理。
               数制及其转换
               按进位的方法进行计数,称为进位计数制。在采用进位计数制的数字系统中,如果只用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位一组,不足补零。
               例如:
               
               二进制运算规则
               (1)加法:1+0=1; 0+1=1; 0+0=0; 1+1=0(有进位)。
               (2)减法:1-0=1; 1-1=0; 0-0=0; 0-1=1(有借位)。
               (3)乘法:0×0=0; 1×0=0; 0×1=0; 1×1=1。
               (4)除法:是乘法的逆运算。
               机器数和码制
               各种数据在计算机中的表示形式称为机器数,其特点是采用二进制计数制,数的符号用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位,最高位为符号位)的对应关系如下表所示。
               
               符号数的四种编码表示
               定点数和浮点数
               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。
               十进制数与字符的编码表示
               数值、文字和英文字母等字符在进入计算机时,都必须转换成二进制表示形式,称为字符编码。
               用4位二进制代码表示1位十进制数,称为十进制编码,简称BCD编码。常用的十进制数的编码有8421 BCD码、余3码、格雷码。
               上述三种编码与十进制数的对应关系如下表所示。
               
               常用编码与十进制数的对应关系
               ASCII码
               ASCII码(American Standard Code for Information Interchange)是美国标准信息交换码的简称,该编码已成为国际通用的信息交换标准代码。
               ASCII码采用7个二进制位对字符进行编码,其格式为每1个字符有1个编码。每个字符占用1个字节,用低7位编码,最高位为0。其共有128个编码,编码从0~127,如下表所示,其中H表示高3位,L表示低4位。
               
               ASCII码表
               
               汉字编码
               汉字处理包括汉字的编码输入、汉字的存储和汉字的输出等环节。在汉字处理的各阶段,分为输入码、(机)内码、交换码(国标码)和字形码,各种码对应的处理过程如下所示:
               
               1)输入码
               数字编码:用数字串代表一个汉字的输入。国标区位码等便是这种编码法。
               拼音编码:是以汉语拼音为基础的输入方法。由于汉字同音字太多,输入重码率很高,因此,按拼音输入后还必须进行同音字选择,影响了输入速度。全拼、双拼、微软拼音等便是这种编码法。
               字形编码:是以汉字的形状确定的编码。汉字总数虽多,但都是由一笔一画组成,全部汉字的部件和笔画是有限的。因此,把汉字的笔画部件用字母或数字进行编码,按笔画书写的顺序依次输入,就能表示一个汉字,五笔字型、表形码等便是这种编码法,这种方法的缺点是需要记忆很多的编码。
               2)内部码
               汉字内部码(简称内码)是汉字在信息处理系统内部存储、处理、传输汉字用的代码。国家标准局GB2312—1980规定的汉字国标码中,每个汉字内码占两个字节,每个字节最高位置"1",作为汉字机内码的标示。以汉字"大"为例,国标码为3473H,两个字节的最高位为"1",得到的机内码为B4F3H。又例如:
               
               3)字形码
               汉字字形码是表示汉字字形的字模数据,通常用点阵、矢量函数等方式表示。字形码也称字模码,它是汉字的输出形式,随着汉字字形点阵和格式的不同,汉字字形码也不同。常用的字形点阵有16×16点阵、24×24点阵、48×48点阵等。
               字模点阵的信息量是很大的,占用存储空间也很大,以16×16点阵为例,每个汉字占用32(16×16/8=32)个字节,两级汉字大约占用256KB。因此,字模点阵只能用来构成"字库",而不能用于机内存储。字库中存储了每个汉字的点阵代码,当显示输出时才检索字库,输出字模点阵得到字形。
               汉字的矢量表示法是将汉字看作是由笔画组成的图形,提取每个笔画的坐标值,这些坐标值就可以确定每个笔画的位置,所有坐标值组合起来就是该汉字字形的矢量信息。每个汉字矢量信息所占的内存大小不一样。
   题号导航      2009年上半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
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题    在手机中做本题