ASCII码和汉字码
国家标准汉字字符集GB2312-80共收集了共7445个汉字和图形符号,其中汉字6763个,分为二级,一级汉字3755个,二级汉字3008个。 汉字图形符号根据其位置将其分为94个“区”,每个区包含94个汉字字符,每个汉字字符又称为一个“位”。区的序号和位的序号都是从01到94。
UCDOS软件中的文件HZK16和文件ASC16分别为16×16的国标汉字点阵文件和8×16的ASCII码点阵文件,以二进制格式存储。 在文件HZK16中,按汉字区位码从小到大依次存有国标区位码表中的所有汉字,每个汉字占用32个字节,每个区为94个汉字。在文件ASC16中按ASCII码从小到大依次存有8×16的ASCII码点阵,每个ASCII码占用16个字节。
在PC机的文本文件中,汉字是以 机内码的形式存储的, 每个汉字占用两个字节:第一个字节为区码, 为了与ASCII码区别,范围从十六进制的0A1H开始(小于80H的为ASCII码字符), 对应区位码中区码的第一区;第二个字节为位码,范围也是从0A1H开始,对应某区中的第一个位码。这样,将汉字机内码减去0A0A0H就得该汉字的区位码。
例如汉字“房”的机内码为十六进制的“B7BF”,其中“B7”表示区码,“BF”表示位码。所以“房”的区位码为0B7BFH-0A0A0H=171FH。将区码和位码分别转换为十进制得汉字“房”的区位码为“2331”,即“房”的点阵位于第23区的第31个字的位置,相当于在文件HZK16中的位置为第32×[(23-1) ×94+(31-1)]=67136B以后的32个字节为“房”的显示点阵。
ASCII码的显示与汉字的显示原理相同,在ASC16文件中不存在机内码的问题,其显示点阵直接按ASCII码从小到大依次排列,不过每个ASCII码在文本中只占1个字节并且小于80h,每个ASCII码为8X16点阵,即在ASCII16文件中,每个ASCII码的点阵也只占16个字节。
背景资料:
1980年,我国颁布了第一个汉字编码的国家标准: GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。由于国标码是四位十六进制,为了便于交流,大家常用的是四位十进制的区位码。所有的国标汉字与符号组成一个94×94的矩阵。在此方阵中,每一行称为一个"区",每一列称为一个"位",因此,这个方阵实际上组成了一个有94个区(区号分别为0 1到94)、每个区内有94个位(位号分别为01到94)的汉字字符集。一个汉字所在的区号和位号简单地组合在一起就构成了该汉字的"区位码"。在汉字的区位码中,高两位为区号,低两位为位号。在区位码中,01-09区为682个特殊字符,16~87区为汉字区,包含6763个汉字。其中16-55区为一级汉字(3755个最常用的汉字,按拼音字母的次序排列),56-87区为二级汉字(3008个汉字,按部首次序排列)。所以,当我们需要n个任意汉字时,我们不必建一个全部汉字表,而是利用区位码实现常用汉字的提取。
源:http://hi.baidu.com/%B8%F8%EB%DE%CC%ED%CD%EB%B7%B9/blog/item/9b6619907be27e8ba877a42b.html
机内码
国标码:是指我国1981年公布的“中华人民共和国国家标准信息交换汉字编码”,代号为“GB2312-80”。由连续的两个字节组成。
2.机内码:在计算机内表示汉字的代码是汉字机内码,汉字机内码由国标码演化而来,把表示国标码的两个字节的最高位分别加“1”,就变成汉字机内码
3.输入码:汉字输入码是指直接从键盘输入的各种汉字输入方法的编码,属于外码。
4.字型点阵码:用点阵方式来构造汉字字型,然后存储在计算机内,构成汉字字模库。目的是为了能显示和打印汉字。
(1)区位码先转换成十六进制数表示
(2)(区位码的十六进制表示)+2020H=国标码;
(3)国标码+8080H=机内码
汉字的机内码是指在计算机中表示一个汉字的编码。机内码与区位码稍有区别。汉字区位码的区码和位码的取值均在1~94之间,如直接用区位码作为机内码,就会与基本ASCII码混淆。为了避免机内码与基本ASCII码的冲突,需要避开基本ASCII码中的控制码(00H~1FH),还需与基本ASCII码中的字符相区别。为了实现这两点,可以先在区码和位码分别加上20H,在此基础上再加80H(此处“H”表示前两位数字为十六进制数)。经过这些处理,用机内码表示一个汉字需要占两个字节,分别 称为高位字节和低位字节,这两位字节的机内码按如下规则表示:
高位字节=区码+20H+80H(或区码+A0H)
低位字节=位码+20H+80H(或位码+AOH)
由于汉字的区码与位码的取值范围的十六进制数均为01H~5EH(即十进制的01~94),所以汉字的高位字节与低位字节的取值范围则为A1H~FEH(即十进制的161~254)。
例如,汉字“啊”的区位码为1601,区码和位码分别用十六进制表示即为1001H,它的机内码的高位字节为B0H,低位字节为A1H,机内码就是B0A1H。
2603 = 1A03H 区位码
+ A0A0H
= BAA3H 机内码
汉字的编码知识
信息编码各国有各国不同的编码,国际上统一使用的编码为ASCII(美国标准信息交换代码),我国使用的有国标码BG(中文),和BIG5(中文繁体)两种。
附带要知道:中文字库(字库文件名,大小,扩展名,存放位置)
中文输入方法(语音输入,键盘输入,手写输入,扫描输入等)
1.汉字的编码
(1)国标码:是指我国1980年公布的“信息交换汉字编码字符集”,代号为“GB2312-80”。由连续的两个字节组成。
(2)机内码:在计算机内表示汉字的代码是汉字机内码,汉字机内码由国标码演化而来,把表示国标码的两个字节的最高位分别加“1”,就变成汉字机内码。
(3)输入码:汉字输入码是指直接从键盘输入的各种汉字输入方法的编码,属于外码。
(4)字型点阵码:用点阵方式来构造汉字字型,然后存储在计算机内,构成汉字字模库。目的是为了能显示和打印汉字。
编码的转换举例
汉字 区位码 16进制 国标码 机内码
文 4636 2E24H 4E44H CEC4H
“文”的区位码为4636,区码和位码分别用16进制表示即为“2E24H”, 0010 1110 0010 0100转换成国标码“4E44H”,0100 1110 0100 0100机内码为“CEC4H”, 1100 1110 1100 0100
2.汉字的输入方法
汉字输入方法目前有两大类四种。
(1)键盘输入法。这是最常用的,利用各种汉字输入方法的编码敲击键盘来输入汉字;
(2)非键盘输入法。目前主要有三种方法。
手写笔输入法:利用汉字识别技术,通过书写笔在感应板上书写汉字把其输入的方法。
语音输入法:利用语音识别技术,通过口说来输入汉字。
扫描识别输入,是将印或写在纸上的汉字通过扫描仪输入计算机,再经相应软件处理后转换成汉字机内码。
3.汉字字符集的概念
有两种汉字字符集。
(1)国标码字符集GB2312-80:该字符集收录了6763个常用汉字,其中一级汉字3755个,二级汉字3008个。另外还收录了各种符号682个,合计7445个。
(2)GBK汉字集:GBK即汉字扩充内码规范,又称大字符集,一共收录了20900个汉字。在Windows简体中文版中,又增加了101个补充字,一共有21001个字。它包容了GB2312-80的6763个常用汉字,台湾BIG5码收录了13000多个汉字,是目前见到的收录汉字最多的汉字系统
ASCII码和汉字码相关推荐
- 2.1.4 什么是ASCII码?汉字的表示和编码是怎样的?
文章目录: 1.什么是ASCII码? 2.汉字的表示和编码是怎样的? 1.什么是ASCII码? 我们知道我们日常见到的数字(0~9).符号比如:#.%.+.@等.英语字母如:(A~z).(a~z),它 ...
- 计算机底层:ASCII码、区位码、国标码、汉字机内码,还有字形码和输入输出编码之间的关系以及介绍
计算机底层:ASCII.区位码.国标码.汉字机内码之间的关系,还有字形码和输入输出编码之间的关系以及介绍 键盘上有:数字.字母.符合.这些都称作为字符,而它们的组合就叫做:字符串. ASCII 键盘上 ...
- java 外码 内码_什么是汉字的内码、外码、交换码、字形码?
展开全部 1.内码是指计算机汉字系统中使用的二进制字符编码,是沟通输入.输62616964757a686964616fe78988e69d8331333433616234出与系统平台之间的交换码,通过 ...
- vc 文字转换到机内码,输入汉字和数字, 输出一串16进制码(数字-〉ASII码,汉字—〉国标码)...
// 可以用,此程序实现的是是文字转换到机内码.机内码=国标码+8080H,不过学习了.//此程序是利用汉字在机器内输出就是机内码的原理,直接保存的,其实挺简单.//输入一串汉字和数字的混合字符, 经 ...
- 浅谈ASCII码、unicode码等
文章目录 背景 ASCII码 小结 背景 总是会混淆ASCII码和Unicode码,本文对此进行一个简要的分析 ASCII码 定义:ASCII ((American Standard Code for ...
- 汉字编码与编程相关问题总结:ASCII、机内码、区位码、国标码、Unicode码他们之间是如何转换的
一.ASCII.机内码.区位码.国标码.Unicode码他们之间是如何转换的,方程式是什么 汉字系统中的过程包括区位码.国标码和机内码,其中的转换关系如下: 1.区位码(十进制)转换成区位码(十六进制 ...
- 汉字编码与编程相关问题总结:ASCII、机内码、区位码、国标码、Unicode码是如何转换的
一.ASCII.机内码.区位码.国标码.Unicode码他们之间是如何转换的,方程式是什么 汉字系统中的过程包括区位码.国标码和机内码,其中的转换关系如下: 1.区位码(十进制)转换成区位码(十六进制 ...
- 字符编码(ASCII码、音码、形码、区位码,国标码、机内码,字形码)
1.西文字符编码 ASCII(美国信息交换标准代码)字符编码,该编码标准已经被国际标准化组织(ISO)指定为国际标准,是国际上使用最广泛的一种字符编码.标准的ASCII码采用二进制编码,他可以表示 ...
- 字符,字节和编码, ASCII码, DBCS码,SBCS码 与Unicode码
字符,字节和编码, ASCII码, DBCS码,SBCS码 与Unicode码 http://www.regexlab.com/zh/encoding.htm 1. 编码问题的由来,相关概念的理解 1 ...
最新文章
- type=file的未选择任何文件修改_PDF文件怎样输入到CAD图纸中?懂得这个功能可以快速实现...
- Vim Vundle 插件管理器
- kali 改root_Kali Linux 将默认以非 root 身份运行
- (总结)Nginx配置文件nginx.conf中文详解
- 物联网安全威胁及应对措施
- mysql 4 中文模糊查询_解决MySQL中文模糊查询问题
- 弹出模态窗口,关闭并刷新页面
- python定义fmax_Python标准库:内置函数max(iterable, *[, key, default])说明
- 方法调用_thinkphp跨模块调用方法
- 为什么有些WIFI不能用万能钥匙搜索到?怎么才能破解邻居家的WIFI密码?
- eclipse每次闪退后都提示查看\workspace\.metadata\.log
- 快速稀疏角点光流框架(Fast sparse corner optical flow framework)
- AWS AI网络研讨会 webinar - Case 分享
- 这些单晶XRD测试问题你了解吗?(一)
- C# 获取硬盘序列号
- extjs6 带条件查询分页
- 华为交换机5720常用命令
- 庄懂着色器_L19_顶点动画
- h5 nan_易企秀资深前端架构师袁飞:移动H5开发如何避坑
- Graphics2D的使用详情
热门文章
- 安装算量软件消火栓系统_识别其他设备
- RNA-seq 详细教程:实验设计(2)
- 最新车载CarPlay盒子中方案内部配置参数
- GNU C++ 智能指针4-- 解析_Sp_counted_ptr类
- 销售使用企业微信SCRM管理系统有什么好处
- (python)基于GUI编写摄氏度转华氏度
- SDH,OTN,IP,MPLS,ATM网络介绍
- TL-WR720N路由器Android安卓不能连接外网问题解决
- 教程 | 用安卓手机搭建 web 服务器(三)—— 内网穿透
- 华为云APIG限流控制