计算机的编码种类及区别

https://upimg.baike.so.com/doc/470970-498752.html

https://blog.csdn.net/LearnLHC/article/details/115133012

https://blog.csdn.net/Bluebro/article/details/124552258?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-124552258-blog-115133012.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-124552258-blog-115133012.pc_relevant_default&utm_relevant_index=1

指电脑内部代表字母或数字的方式,字符集和编码方式的关系就好比函数的关系:
字符集为自变量x的定义域,编码规则相当于映射关系f。x经过f(x)的变换后,生成能被电脑执行的二进制数。

常见的编码方式有:ASCII编码、GB2312编码(简体中文)、GBK、BIG5编码(繁体中文)、ANSI编码、Unicode、UTF-8编码等。

最小的单元是位(bit),接着是字节(Byte),一个字节=8位,英语表示是1 Byte=8 bits 。机器语言的单位Byte。1 KB=1024 Byte; 1 MB=1024 KB; 1 GB=1024 MB ; 1TB=1024 GB。

ASCII编码、Unicode编码和utf-8编码区别
因为ASCII编码只能处理英文字母、数字和一些符号,所以为了处理汉字我们就编写了GB2312编码,为了处理日文小日本就编写了他们的编码方式,就这样每个国家语言都有自己制定的一套编码。在这种情况下,当我们阅读其他编码方式处理的文章时就会出现乱码情况。
为了解决乱码问题,Unicode编码应运而生。Unicode编码就是把所有的语言编码方式统一成一套编码体系从而解决乱码问题。
然而,采用Unicode编码时一个字符需要用两个字节存储空间,采用Unicode编码处理一个纯英文的文本相比ASCII编码所消耗的内存空间整整多了1倍,因此相当不划算。
为了更高效的利用存储空间, 又出现了把Unicode编码转化为“可变长编码”UTF-8编码,UTF-8编码将Unicode字符按数字大小编码为1-6个字节,英文字母被编码成一个字节,常用汉字被编码成三个字节,如果你编译的文本是纯英文的,那么用UTF-8就会非常节省空间,并且ASCII码也是UTF-8的一部分。

ASCII码编码

因为1位二进制数可以表示2种状态:0、1;而2位二进制数可以表示4种状态:00、01、10、11;依次类推,7位二进制数可以表示128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。所以,7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。 编码范围0000 0000~0111 1111,最高位为奇偶校验位。

所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。

 

GB2312码

GB2312码,是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集——基本集》,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。

GB2312收录简化汉字及符号、字母、日文假名等共7445个图形字符,其中汉字占6763个。GB2312规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示”,习惯上称第一个字节为“高字节”,第二个字节为“低字节”。

GB2312 将代码表分为94个区,对应第一字节;每个区94个位,对应第二字节,两个字节的值分别为区号值和位号值加32(2OH),因此也称为区位码。01-09 区为符号、数字区,16-87区为汉字区,10-15区、88-94区是有待进一步标准化的空白区。GB2312将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。故而 GB2312最多能表示6763个汉字。

GB2312的编码范围为2121H-777EH,与ASCII有重叠,通行方法是将GB码两个字节的最高位置1以示区别。

在GB2312-80编码方案中,汉字的编码是通过一个94x94的矩阵来实现的,这个矩阵被称为区位码表。在这个矩阵中,每一行称为一个“区”,每一列称为一个“位”,这样就形成了94个区号和94个位号的汉字字符集。一级汉字有3755个,二级汉字有3008个,图形符号有682个。一个汉字的区位码由所在区号与位号组合而成,与汉字或图形符号之间是一一对应的。例如,“学”的区位码为43907D。

 

 

posted @ 2022-09-30 10:13  yinghualeihenmei  阅读(331)  评论(0编辑  收藏  举报