软考程序员数据表示方法分析题
    【例1-1】求十进制小数0.375表示的二进制小数是什么?
    解:十进制小数转换成二进制小数用“乘2取整”法,最先得的是二进制小数最髙位。
    0.375x2
    ®750整数部分O-lCq高位
    Q500整数部分丨=K_2x2
    Q}ooo整数部分i=k_3低位
    所以(0.375)io=(0.011)2
   
    【例1-2】求十进制数19.375表示的二进制数是多少?
  解:如果一个十进制数包含有整数部分和小数部分,则将整数部分及小数部分分别求出其对应的二进制整数和二进制小数,再将二者用小数点连接起来即是答案。
    因为(19)丨。=(10011)2
    (0.375)io=(0.011)2所以(19.375)|0=(10011.011)2
   
    【例1-3】将二进制数1011.11转换成八进制数。
    解:八进制数中使用八个不同的符号,表示八个不同的符号在计算机中是很困难的,因为一个具有8个不同稳定状态的器件是很难的;但一位八进制数可以用3位二进制数来表示,还是方便的。
    如:(0)8=(000)2(1)8=(001)2
    (2)8=(010)2(3)8=(011)2
    (4)8=(100)2(5)8=(101)2
    (1)8=(110)2(7)8=(111)2二进制数转换为八进制数的方法,从小数点开始,整数部分向左每3位一组,小数部分向右每3位一组,不足3位补0,必须补足3位,再分别用八进制数表示即可。本例中(101111.11)2=(101,111.110)2=(57.6)8
   
    【例1-4】将八进制数76.5转换成二进制数。程序员和编程员的区别
    解:按照类似道理,将每位八进制数用3位二进制数表示出来即可。
    (76.5)8=(111,110.101)2=(111110.101)2
   
    【例1-5】将二进制数101111.101转换成十六进制数。
    解:用类似八进制数的转换方法,从小数点开始,分别向左、向右每4位一组,不足4位补0,补够4位,再用16进制数的符号分别表示之。
    需要注意一位十六进制数需要4位二进制数表示。
    (0),6=(0000)2(1),6=(0001)2
    (2)16=(0010)2(3),6=(0011)2
    (4)16=(0100)2(5)16=(0101)2
    (6)16=(0110)2(7)16=(0111)2
    (8),«=(1000)2(9)16=(1001)2
    (A),6=.(1010)2(B)I6=(10U)2
    (C),6=(1100)2(D),6=(1101)2
    (E),6=(1110)2(F),6=(1111)2
    其中:A、B、C、D、E、F,分别对应十进制数10、11、12、13、14、15。
    本例中(1011110.101)2=(0101,1110.1010)2=(5E.A)|6类似道理,将十六进制数转换成二进制数时可将每位十六进制数分别用4位二进制数表示即可。
    需要注意:在计算机内为了区别十六进制,十进制、八进制、二进制数,常常在数列末尾加一个后缀来表示。
    如(5E.C)16写成5E-CH表示H前边的数是十六进制的数。同理用0表示八进制数,用D表示十进制数,用B表示二进制数。
    因为到一个具有十个不同稳定状态的器件很难.在计算机中可以采用4位二进制数表示一位十进制数。但是4位二进制数有24=16种编码,我们只从其中选用10种编码,其余6种不用。
    十进制数编码有两种方案,即有权码方案和无权码方案。
    有权码方案中,其4位二进制数每一位数都对应固定的权,用4位二进制数表示的和代表对应十进制数。
    最常用的有权码方案是8421码,8421码每位二进制数的权与二进制计数制中每位二进制数的权相同,又可称为二进制编码的十进制数编码,简称BCD编码。
    最常用的无权码是余3码和格雷码。
   
    【例1-6】将二进制数1110111用十进制数BCD码表示。
    解:先将二进制数按权展开求和,表示成十进制数。
    (1110111)2=1x26+1x25+1x24+0x23+1x22+1x2'+1x2°
    =(64+32+16+O+4+2+l)i0=(119)io再将十进制数用BCD码表示。
    此时把每位十进制数用其对应的BCD码表示,再把各位连起来即可。
    (119)|。=(0001,0001,1001)bcd注意:BCD码中每4位二进制数表示丨位十进制数,而各位十进制数间仍沿用逢十进一的十进制数进位关系。
    国际上普遍采用美国国家信息交换标准码ASCII表示英文大小写字母、阿拉伯数字、通用运算符号+、-、x、+和标点符号等128个符号,用7位二进制数编码表示,在计算机中占用1个字节,字节最髙位用“0”表示。
    ASCII码7位二进制数共分8组,每组16个符号。
    000组001组是控制字符?,共32个,不能显示。
    011组前十个编码表示十个阿拉伯数字0~9,按数字大小次序编码存放。
    100组101组表示大写英文字母,按字母顺序存放。
    110组丨1丨组表示小写英文字母,按字母顺序存放。
    如英文字母“A”的ASCII编码是01000001:阿拉伯数字“0”的ASCII编码是00110000,阿拉伯数字“5”的ASCII编码是00110101:依次类推。
   
    【例1-7】已知英文字母“A”的ASCII编码是01000001,问英文字母“B”的ASCII编码是什么?“G”的ASCII编码是什么?
    解:根据英文字母在ASCII编码中是按顺序存放的规则,“B”应是第2个字母,因此“B”的ASCII码是0100010。“G”应是第7个字母,“G”的ASCII码是01000111。
    计算机中英文字母的存储传送都是用ASCII码表示的,每个字母占用一个字节。因为ASCII码的数值大小,也可反映字母的先后顺序,可以用ASCII码对英文字母进行排序。
    汉字编码例题分析
   
    【例1-8】汉字区位码的区号位号各是什么含义?如何表示汉字?
    解:汉字区位码是一种数字输入编码,没有重码。
    区位码把常用汉字分成94区,每个区分成94位,区号、位号分别用两位十进制数表示。因此区号、位号四位十进制数可惟一地确定一个汉字,输入一个汉字时需要击键4次。
    区位码共可表示94x94=8836个汉字,每个汉字占两个字节。
    关于汉字分区的规定:区位码中1~丨5区为常用符号:16~55区为较常用的一级汉字3000多个,按音序排列;56?87区为二级汉字,约4000个,按偏旁部首排列,88~94区未用。
   
    【例1-9】说明区位码与国标码有什么差别?己知汉字区位码是1601,求其国标码。
  解:区位码是一种汉字输入码。输入码种类很多,为了使不同的计算机汉字系统之间交换汉字信息方便,我国制定了汉字信息交换码国家标准GB2312-80,即国标码。
    国标码也是一种数字编码,与区位码一一对应,国标码码长也是用两个字节表示一个汉字,字节设高位都是“0”,但是对应的区号位号不用十进制数表示,而是用十六进制数表示;并且第一个汉字放在国标码的二字节平面中位中。国标码的区号与区位码的区号相差(20),6,国标码的位号与区位码的位号相差(20)16。因此要将区位码的区号位号分别用十六进制的数表示,再加上(2020)16即可得到指定汉字的国标码=
    本例中,汉字“啊"的区位码是1601,把十进制的区号、位号分别用丨6进制数表示,变成(丨001)|6,再加上(2020)|6,即得汉字“啊”的国标码(302丨)|6?
   
    【例1-10】说明汉字国标码与内码有什么区别,己知汉字“啊”的国标码是3021,求其内码。
  解:汉字内码是计箅机内存储、传送、处理汉字用的代码,用两个字节表示,与区位码、国标码一一对应,但为了与机内ASCII字符相区分,专门作出规定,汉字每个字节设高位用“丨”作标志,在字符编码中,当字节最高位为“0”时表示英文字符;当字节最高位为“丨"时表示汉字。若把国标码二字节最髙位改成“丨”就变成汉字内码。
    具体形成汉字内码时,可把国标码加上十六进制数(8080)|6,就可得到汉字内码。
    本例中,汉字“啊”的国标码是(3021)|6,形成汉字内码时,把字节最髙位变成“1”.即加上(8080)l6,(3021)i6+(8080)i?=(B0A1),6
    因此,“啊”字的汉字内码是BOA1。
   
    【例1-11】说明汉字输出码的特点,计算16x16点阵的汉字字形码表示国标码字库的最小容
    解:汉字内码是计算机内代表汉字的编号,不能直接给出汉字的字形,只有通过汉字的编
号到汉字的字形后才能通过输出设备显示出汉字,得到汉字的字形。由于汉字字形码使用的信息fit特别大,因此机内存储、传送、处理汉字时,都使用汉字内码,只有必须输出汉字字形时,才使用汉字字形码。
    字形码也叫字模码,设常使用的方法是点阵法,就是将汉字写在网状方格媒质上,将汉字字形分解成由若干点组成的点阵组合,点阵中每一小方格有两个状态,分别用“0”和“1”表示该小方格是黑还是白,有点或是无点。这样每一个汉字字形都可对应一组二进制信息。
    汉字字形码放在固定的汉字字库中,需要输出汉字时,根据其内码可以从汉字字库中,出其对应的字形码,逐行逐点地输出点阵信息,显示出汉字字形。
    本例中汉字字模码用16x16的点阵表示,即表示一个汉字字形骷要32字节的信息,按照GB23丨2-80规定的国标码约有7500个汉字,则汉字字库共無32Bx7500=240KB的容1ft.
 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。