汉字的内码和区位码
在计算机中英文字符是用一个字节的ASCII码表示,该字节最高位一般置0或用做奇偶校验,故实际是用7位码来代表128个字符的,但对于众多的汉字,只有用两个字节才能代表,这样用两个字节代表一个汉字的代码体制,国家制定了统一标准,称为国标码。
国标码规定,组成两字节代码的最高位为0,即每个字节仅只使用7位,这样在机器内使用时,由于英文的ASCII码也在使用,可能将国标码看成两个ASCII码,因而规定用国标码在机内表示汉字时,将每个字节的最高位置1,以表示该码表示的是汉字,这些国标码两字节最高位加1后的代码称为机器内的汉字代码,简称内码。 
国家标准的汉字字符集(GB2312-80)在汉字操作系统中是以汉字库的形式提供的。汉字库结构作了统一规定,即将字库分成94个区,每个区有94个汉字(以位做区别),每一个汉字在汉字库中有确定的区和位编号(用两个字节),就是所谓的区位码,区位码的第一个字节表示区号,第二个字节表示位号,只要知道了区位码,就可知道该汉字在字库中的地址。
当我们用某种输入设备例如键盘将汉字输入计算机时,管理模块将自动的把键盘输入的汉字转换为内码。当要显示该汉字时,再由内码转换成区位码,在汉字库找到该汉字,进行显示。如“哈”的区位码为2594,它表示该字字模在字符集的第25个区的第94个位置。
 每个汉字在字库中是以点阵形式存储的,常采用12×12、16×16、24×24、48×48点阵形式,同英文字模一样,每个点用一个二进制bit位表示,bit=1的点,当显示时,就可以在屏上显示一个点,bit=0的点,则在屏上不显示,这样把存某字的点阵信息直接用来在显示器上按上述原则显示,将出现对应的汉字。最常用的汉字是16×16点阵,它是由行、列各16个点,共256个点组成的点阵图案,每行的16个点在内存中占二个字节,一个16×16点阵汉字共16行,在内存中占32个字节。
根据这些字节在字膜中存放的顺序,第一行的第一个字节我们称“0”号字节,第二个字节我们称“1”号字节;第二行的第一个字节我们称“2”号字节,第二个字节我们称“3”号字节。以此类推,最后一行的第一个字节我们称“30”号字节,第二个字节我们称“31”号字节,每个字节高位在前,低位在后,即D7在一个字节的最左侧,D0在最右侧。具体如图3-3所示: 
如我们要在屏幕的X行Y列位置显示上面的“哈”字,则可以从点(X,Y)开始将0号字节和1号字节的内容输出到屏幕上;然后行加1,列再回到,输出2号字节和3号字节,依此类推16个循环即可完成一个汉字的显示. 输出一个字节数据时,该字节中“位”(bit)为1时在该“位”位置打点,为0时该“位”位置打空白。
此外常用的汉字还有24×24点阵,它是由行列各24个点组成的点阵图案,它每列的24个点在内存中占三个字节,一个24×24点阵汉字共24列,在内存中占72个字节;48×48点阵,行×列为48×48,一个汉字占内存288个字节。12×12点阵(为方便编程把列12点扩展为16点,既二个字节)行×列为12×16,一个汉字占内存24个字节。
GB2312-80中,94个区中除6763个汉字外,第3~7区给这些符号留下了位置,如第3区为英文大小写符号、第4区为日文平假名、第5区为日文片假名、第6区为大小写希腊字母、第7区为大小写俄罗斯字母。这些字符每一个都有固定的区位码,当然也都有一个固定的内码。当用某种输入法输入一个西文字符时,在计算机中是用内码表示的,显示时通过内码计算出区位码,找到该字符字模进行显示。其中英文字符比较特殊,在西文操作系统中,如上所述,它是以ASCII码存储的,而在汉字操作系统中,它是做为一个汉字,以内码方式存储。

汉字的内码和区位码与显示汉字原理相关推荐

  1. 了解中文(英文)字库的分布,如何从一个汉字的内码得出其字库

    了解中文(英文)字库的分布,如何从一个汉字的内码得出其字库 1.以前的字符显示都是英文的,占一个字节.比如'1',对应的ASCI是0x31,表示处理器将'1'解释成0x31. 如 case asci_ ...

  2. 微型计算机字,在微型计算机的汉字系统中,一个汉字的内码占 – 手机爱问

    2005-06-20 内码是什么? 字符编码:字符编码就是以二进制的数字来对应字符集的字符,目前用得最普遍的字符集是ANSI,对应ANSI字符集的二进制编码就称为ANSI码,DOS和Windows系统 ...

  3. java 外码 内码_什么是汉字的内码、外码、交换码、字形码?

    展开全部 1.内码是指计算机汉字系统中使用的二进制字符编码,是沟通输入.输62616964757a686964616fe78988e69d8331333433616234出与系统平台之间的交换码,通过 ...

  4. c语言字符类型强制换成内码,C语言实现不同汉字系统的内码转换方法

    摹14●摹 1囊 l9髓 丰 3̂ 齐 弃 靖尔 大 学学 报 J伽rn|l 0fQiq 嘶 劬 q 言实现不 字 |I∈峰 张宏烈 周长支 一 1 / (齐弃暗拳太掌工鼍qb,一r /1 -i l ...

  5. 汉字字符内码查询_计算机等级考试查询系统

    全国计算机等级考试查询系统 查询地址最下面阅读原文?? 计算机的发展简况 1946年第一台数字计算机(ENIAC)问世 (诞生于美国) 计算机基础知识 一.单选题练习 1.完整的计算机系统由( C ) ...

  6. 汉字字符内码查询_VB小程序,字符与内码

    VB小程序,关注我有更多的有趣的VB小程序 1.字符的十进制内码 控件:一个TextBox文本框,一个ListBox列表框,一个CommandButton命令按钮 界面: 代码: Private Su ...

  7. 信息编码--区位码,国标码,内码

    计算机内的信息编码 西文字符编码 西文就是英文,数字,英文标点等等,每个ASCII码以一个字节(Byte)储存,国际通用的7位码用7位二进制数表示一个字符的编码,其编码范围是00000000-0111 ...

  8. 汉字编码-区位码、国标码和内码发展和区别以及为什么要加2020H、8080H

    当计算机传入中国并开始普及时,首要问题是解决中文编码问题,也就诞生出了GB2312.GBK等等编码方式.而其中的具体实现方式是什么?区位码是什么?国标码是什么?它们如何转换又为什么这么转换? 首先来看 ...

  9. mysql外码内码定义_内码和外码分别是什么啊?

    满意答案 haomingwen 2017.10.03 采纳率:57%    等级:10 已帮助:1369人 我们常说汉字的"内码"与"外码". 内码是汉字在计算 ...

最新文章

  1. 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发
  2. python自动化办公都能做什么菜-Python自动化开发学习之三级菜单制作
  3. Angle Finder(角度测量)
  4. 通过History Trends Unlimited通过统计服务器上Chrome浏览器Top10网页历史访问量(2021.11.23)
  5. 【JAVA零基础入门系列】Day14 Java对象的克隆
  6. 孙三奇 计算机科学,墓徒暗战-第二百零八章 惨烈的变故
  7. 件工程项目开发最全文档模板_一文带你了解微信小程序社区和小程序开发
  8. 【转】!C#中的Stream相关
  9. Centos修改主机名,重启后无效解决
  10. “软考”遗失试卷全部追回 相关责任人接受审查
  11. 《Queue,Stack,SortedList》---集合
  12. Django ImportError: Settings cannot be imported
  13. 正则表达式批量重命名
  14. caffe linux 教程,Caffe 深度学习入门教程
  15. c语言课程设计实训主要目的,《C语言课程设计实验大纲.doc
  16. 什么是量子加密(一)
  17. 数字化是实现“跨界打劫”的超级武器
  18. 北大沙龙 | 技术大咖为大家讲解什么是UTXO
  19. python求平均值_如何用python求平均值
  20. “NODE星球”空降格尔木,首创沉浸体验式戈壁嘉年华颠覆想象

热门文章

  1. [机器学习]Python中Numpy,Pandas,Matplotlib,Scipy,Seaborn介绍
  2. Altium Designer(AD)软件使用记录08-PCB布局部分
  3. Kafka管理平台LogiKM调研
  4. Ubuntu 安装gcc 9.1 和 C++17
  5. 加密越来越简单——用JavaScript实现数据加密和解密
  6. ztree 自定义节点属性
  7. 《ANSYS CFX 14.0超级学习手册》——第2章 CFX软件简介2.1 CFX的软件构成
  8. 能不能把iec61850规约实现
  9. 回应:现在的gal汉化组为什么不多汉化些神作呢?
  10. visual studio 2019安装Nsight无菜单项