【计算机基础知识】字符的编码表示

欢迎来到我的:世界

希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 !


目录

前言

计算机处理的数据中,除了数值型数据以外,还有字符、图形等的非数值型数据。其中字符是日常生活中使用最频繁的非数值数据,它包括大小写英文、符号以及汉字等。由于计算机只能识别二进制编码,为了能够对字符进行识别和处理,因此要对其进行二进制编码表示;


1.西文字符编码

对西文字符编码最常用的是ASCII(美国信息交换标准代码)字符编码,该编码标准已经被国际标准化组织(ISO)指定为国际标准,是国际上使用最广泛的一种字符编码。ASCII码有两个版本:标准ASCII码和扩展ASCII码。

标准ASCII码是一个用7位二进制数来编码,用8位二进制数来表示的编码方式,其最高位为0,右边7位二进制位总共可以编出2^7=128个码。每个码表示一个字符,一共可以表示128个符号。

扩展ASCII码后128个编码称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或"高")ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。

标准ASCII是7位编码,存储时占8位,最高位是0,共可以表示128(2的7次方)个字符。

扩展ASCII是8位编码,刚好1个字节,最高位可以是0也可以是1,共可以表示256(2的8次方)个字符。

标准ASCII码:

表里的128个字符中,0~31及127(共33个)是控制字符或通信专用字符,为不可显示字符;其余字符为普通的字符(可显示字符);
常见ASCII码的大小规则:数字< 大写字母 < 小写字母。

2.中文字符编码

与英文字符一样,中文在计算机系统中也要使用特定的二进制符号来表示。通过键盘输入汉字时实际上是输入汉字的编码信息,这种编码称为汉字的输入码。计算机为了存储、处理汉字,必须将汉字的外部码换成汉字的内部码。为了将汉字以点阵的形式输出,还要将汉字的内部码转换为汉字的字形码。此外,在计算机与其他系统或设备进行信息、数据交流时还要用到国际码(交换码)。汉字编码的转换过程如图:

汉字输入码

汉字输入码是一种用计算机标准键盘上按键的不同排列组合来对汉字的输人进行的编码,也称为汉字的外部码(外码)。目前汉字输人编码法的研究和发展迅速,已有上百种汉字输人编码法。一个好的编码法应满足以下要求:编码短,可以减少击键的次数:码少,可以实现盲打;好学好记,便于学习和掌握,但现在还没有一种符合上述全部要求的汉字输入编码方法。
目前常用的汉宇编码主要分为以下三类:

音码: 主要是以汉语拼音为基础的编码方案,如全拼、双拼、简拼和智能 ABC 等。目前比较流行的拼音输人法有搜狗拼音、百度拼音等。音码的重码率高,单字输人速度慢,但容易掌握。
形码: 形码主要是根据汉字的特点,按汉字固有的形状,把汉字先拆分成部首,然后进行组合,代表有五笔字型法郑码输入法等。形码重码较少,单字输入速度快,但学习和掌握较困难。
数字编码: 常用的是区位码,用数字串输入一个汉字。区位码是将国家标准局公布的6763个两级汉字分为94个区,每个区分为94位,实际上是吧汉字集排列成二维数组的形式,行为区,列为位,每个汉字在数组中的下标就是区位码。区码和位码各用两位十进制数字表示,因此输入一个汉字需要按键4次。例如,"中"字位于第54区48位,区位码为5448。数字编码的优点是无重码,与内部编码的转换比较方便,缺点就是代码很难记;

为了提高输入速度,输入方法现已经走向了智能化,比如:语音识别输入、手写输入或扫描输入。但不管是哪种输入法,都是操作者向计算机输入汉字的手段;

汉字国标码

国标码是我国1980年发布的《信息交换用汉字编码字符集------基本集》(代号为GB2312-80),是中文信息处理的国家标准,也称为汉字交换码,简称GB。国标码对汉字进行编码的时候占用两个字节。考虑与ASCII编码的关系,国标码使用了每个字节的低7位。据统计,GB2312编码共收录汉字6763个和682个图形符号,把最常见的6763个汉字分为两级:一级汉字有3755个,二级汉字有3008个,按照偏旁部首排序。
区位码与国标码之间的关系:

区位码转换为国标码要将一个汉字的十进制区号和十进制位号分别转换为十六进制,然后再分别加上20H,就成为次汉字的国标码。

公式:汉字国标码=汉字区位码+2020H=汉字区位码+A0A0H

小知识:

不止只有GB2312编码,还有很多别的编码,比如:GBK、GB18030、BIG5、Unicode等等,咱们挑两个说一说:

GBK编码:全称《汉字内码扩展规范》1995年制订,也是和GB2312编码一样两个字节表示一个汉字,总共收录了21886个符号,包括了21003个汉字和883个其他符号;

BIG5编码:是专用于港澳地区使用的繁体字编码方案,也是两个字节表示一个汉字,总计有13053个繁体字(包括5401个常用字、7652个次常用字)、7个扩充字、以及808个各式字符,总共13868个字符;

汉字机内码

汉字在计算机内部使用的编码就是内码,也称为机内码。所以真正的计算机内部用来存储和处理和存储汉字信息的代码;每个汉字的内码占用两个字节,并且每个字节的最高位为1,这是为了避免汉字的内码与英文字符编码(ASCII码)发生冲突,容易区分汉字编码和英文字符编码,同时为了用尽可能的存储空间来表示尽可能多的汉字而做出的决定;
机内码与国标码的关系:

国标码的高字节、低字节分别+80H,就可以得到机内码;
汉字机内码=汉字国标码+8080H

汉字字形码

汉字字形码又叫做汉字字模或汉字输入码,用于汉字在显示屏或打印机输出 。汉字字形码通常有两种表示方式:点阵式矢量式

点阵式表示字形时,分为 16X16 点阵、24X24 点阵、32X32 点阵、48X48 点阵等,点阵越大,描述的字形越细致美观,质量越高,所占存储空间也越大。在计算机中,8 个二进制位组成一个字节,它是度量空间的基本单位,因此,一个16X16点阵的字形码需要 16X16/8-32字节的存储空间,由此可得:

点阵字形码所占字节数=点阵行数X点阵列数/8

矢量式是描述汉字字形的轮廓特征,当要输出汉字时,字形和大小与计算机的分辨率无关,可以产生高质量的汉字输出,并节省存储空间。用矢量式记录的字体可以任意放缩甚至变形,而不用担心会出现锯齿状边缘。

所有汉字的输出码构成了汉字字形库,简称字库。

点阵字体与矢量字体的区别:


总结


到了最后: 感谢支持

我还想告诉你的是:

------------对过程全力以赴,对结果淡然处之
也是对我自己讲的

相关推荐
C++忠实粉丝几秒前
计算机网络之应用层协议HTTP
linux·网络·c++·网络协议·tcp/ip·计算机网络·http
爱编程— 的小李1 分钟前
文件的处理(c语言)
c语言·开发语言
monkey_meng5 分钟前
【Rust Iterator 之 fold,map,filter,for_each】
开发语言·后端·rust
Vae_Mars9 分钟前
QT-protected
开发语言·qt
Vae_Mars9 分钟前
QT-installEventFilter
数据库·qt
神仙别闹16 分钟前
基于Java实现的(GUI)华容道小游戏
java·gui
JosieBook18 分钟前
【面试题】2025年百度校招Java后端面试题
java·开发语言·网络·百度
请你打开电视看看19 分钟前
观察者模式
java·观察者模式·设计模式
Mr.朱鹏22 分钟前
设计模式之策略模式-工作实战总结与实现
java·spring·设计模式·kafka·maven·策略模式·springbbot
计算机毕设指导625 分钟前
基于SpringBoot共享汽车管理系统【附源码】
java·spring boot·后端·mysql·spring·汽车·intellij idea