加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

常用字符编码

(2009-06-26 09:52:05)
标签:

教育

计算机可以在屏幕上显示字符,这些字符可以是字母,标点符号,数字,汉字等。计算机只认识二进制数,所以也只能用二进制数来表示每个显示和输出的字符。为了使计算机的数据能够共享和传递,必须对字符进行相应的二进制编码。
  目前常用的编码有如下几种:BCD码、ASCII码、汉字编码等。

BCD
1、什么是BCD码?观察并体会其特点

十进制数位

0

1

2

3

4

5

6

7

8

9

BCD码

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

 用四位二进制数码来表示一位十进制数,这种编码称为BCD码(也叫8421码),即用二进制数表示的十进制数。

 [例1]把十进制数7209化成BCD码。
    解:7209的BCD码为:0111 0010 0000 1001

 练习:求十进制数4851的BCD码。
    解:4851的BCD码为:0100 1000 0101 0001

2、对于BCD码的几点说明:
(1)考虑人们使用习惯,通常在计算机输入输出过程中还是采用十进制,然后由机器转换成二进制。BCD码的形式非常适于人类的这种习惯。
(2)BCD码虽然也用四位二进制数编码来表示每位十进制数用,但它没有把十进制数的值转换成真正的二进制值,不能按权展开求值。
如:十进制数28转换成二进制数为:11100 十进制数28转换成BCD码为:00101000   

  所以,BCD码与二进制之间转换是不能直接进行的,要先转换成十进制,再转换为二进制,因为BCD码实质上是十进制数,而形式上为二进制数,在转换上又与二进制数十六进制数之间的转换相似。所以在学习时要注意不要混淆,加以区别。
  练习:填表

十进制数

18

45

112

51

42

82

51

二进制数

10010

101101

1110000

110011

101010

1011100

110011

BCD码

00011000

01000101

000100010010

01010001

01000010

10000010

01010001

ASCII
1、什么叫ASCII码?
  ASCII码是美国标准信息交换码的缩写,它是目前国际上在计算机中用二进制数表示字母、数字、符号以及控制符号最常用的编码。
(1)常用字符有128个,编码从0到127(0000000―1111111)。
(2)控制字符:0-31、127,共33个,不可显示;
(3)普通字符:95个,包括10个阿拉伯数字、52个英文大小写字母、33个运算符。
(4)每个字符占个字节,最高位为0,后面跟7位二进制数。

2、常见ASCII码的大小规则,09AZaz
(1)数字比字母要小。如“7”<“F”
(2)数字0比数字9要小,并按0到9顺序递增。如“3”<“8”
(3)字母A比字母Z要小,并按A到Z顺序递增。如“A”<“Z”
(4)同个字母的大写字母比小写字母要小32。如“A”<“a”
(5)记住几个常见字母的ASCII码大小:
“空格”为32;“0”为48;“A”为65;“a”为97。
3、常用ASCII码表如下:


字符

范围

十六进制

十进制

空格

20H

32

0~9

30H~39H

48~57

A~Z

41H~5AH

65~90

a~z

61H~7AH

97~122

[例2]已知字母“B”的ASCII码为十进制数66,那么字母“E”的ASCII码为二进制数多少?
解:字母“E”的ASCII码为十进制数69(66+3),转换成二进制数为1000101

[例3]已知字母“a”的ASCII码为十六进制数61,那么字母“h”的ASCII码为二进制数多少?
解:字母“h”的ASCII码为十六进制数68(61+7),转换成二进制数为01101000

汉字编码
1、汉字编码分类
汉字在不同的处理阶段有不同的编码。
(1)汉字的输入:输入码->国标码
(2)汉字的机内表示:机内码
(3)汉字的输出:字形码(输出码:汉字点阵字库)

各种编码之间的关系

http://www.sxszjzx.com/~c14/08jsj/15/1_clip_image001_0000.gif

2、汉字的机内表示:机内码
  计算机在信息处理时表示汉字的编码,称作机内码。
  现在我国都用国标码(GB2312)作为机内码。

GB2312-80规定了:
  (1)一个汉字由两个字节组成,为了与ASCII码区别,最高位均为“1”。
  (2)汉字6763个:一级汉字3755个,按汉字拼音字母顺序排列;二级汉字3008个,按部首笔画汉字排列。
  (3)汉字分区:94行(区),94列(位)(区位码)

3汉字的机内表示:区位码、国际码和机内码:

1区位
  计算机在信息处理时表示汉字的编码应该规定统一的编码,我国制定了汉字交换的统一标准——GB2312-80,我们简称为区位码。

 GB2312-80国标字符集将汉字编码分成94区与94位,就是区位码。共收集了7445个图形字符,其中一般符号、数字、拉丁字母、希腊字母、汉语拼音等709个,汉字字符分为两级,一级汉字3755个,二级汉字为3008个。该标准按区位码从小到大排列如下:

第1区  图形、符号区
第2区  各类数字区
第3区  符号、字母
第4区  日文的平假名
第5区  日文的片假名
第6区  希腊字母
第7区  俄文字母
第8区  拼音字母
第9区  制表符
第16——55区(常用字)  一级汉字  按拼音排列
第56——87区(非常用字) 二级字库  按部首排列
第88――94区 自定义汉字

①GB2312-80标准中共有汉字6763个:
   一级汉字3755个,按汉字拼音字母顺序排列;
   二级汉字3008个,按部首 笔画汉字排列。
②GB2312-80标准采用区位码,将汉字编码分成94区与94位。

练习:一级汉字的第一个汉字的区位码是多少?1601
   二级汉字的第一个汉字的区位码是多少?5601

③知识链接:汉字标准不仅有GB2312-80一种
在台湾和香港使用的汉字字符集是 BIG5(繁体中文),共有汉字13053个。
汉字扩展标准GBK字符集,GBK字符集有20902个汉字字符

2国标码:汉字信息交换的代码,也称交换码。
   区位码与国标码的换算:国标码=十六进制的区位码+2020H

3机内码:计算机系统内部标识汉字的编码。
   一个汉字由两个字节组成,为了与ASCII码区别,最高位均为“1”。
   国标码和机内码的换算:机内码=十六进制的国际码+8080H

[例1]“大”字的区位码为2083,求该字的国标码和机内码。

分析方法步骤:
  (1)区码和位码分别转换成十六进制数表示
  (2)(区位码的十六进制表示)+2020H=国标码;
  (3)国标码+8080H=机内码

解:1、该字的区号为20,位号为83
  2、将区位号2083分别转换为十六进制表示为1453H
  3、国标码=1453H+2020H=3473H
  4、机内码=3473H+8080H=B4F3H

[练习]已知某字区位码为2054,请分别求出该字的国标码与机内码。
十六进制区位码:1436H
国标码:3456H
机内码:B4D6H

汉字的输入:汉字输入码(外码)

1、数字码(或流水码)
  如:电报码、区位码、纵横码
  优点:无重码,不仅能对汉字编码,还能对各种字母、数字符号进行编码。
  缺点:是人为规定的编码,属于无理码,只能作为专业人员使用。
2、字音码
  如:全拼、双拼、微软拼音
  优点:简单易学。
  缺点:汉字同音多,所以重码很多,输入汉字时要选字。
3、字形码
  如:五笔字型、表形码、大众码、四角码
  优点:不考虑字的读音,见字识码,一般重码率较低,经强化训练后可实现盲打。
  缺点:拆字法没有统一的国家标准,拆字难,编码规则繁,记忆量大。
4、音形码
  如:声形、自然码、钱码
  优点:利用音码的易学性和形码可有效减少重码的优点。
  缺点:既要考虑字音,又要考虑字形,比较麻烦。

汉字的输出:字形码(字库 Font
  1、点阵字形:16×16、24×24、48×48
    每一个点在存储器中用一个二进制位(bit)存储,所以一个16×16点阵汉字需要32(16×16/8=32)个字节存储空间。
  2、轮廓字形
    字笔画的轮廓用一组直线和曲线勾画。记录的是这些几何形状之间的关系。
    精度高。
    Windows的TrueType字库采用此法。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有