百色金融新闻网
您的位置:百色金融新闻网 > 理财保险 > 《程序世界》笔记4 文字编码问题-pin码是什么意思

《程序世界》笔记4 文字编码问题-pin码是什么意思

作者:百色金融新闻网日期:

返回目录:理财保险

最新资讯《《程序世界》笔记4 文字编码问题-pin码是什么意思》主要内容是pin码是什么意思,文字编码遇到的一些概念:字符集:文字的集合就称为字符集。字符集记录了如何用0和1的编码组合代表某一个文字。,现在请大家看具体新闻资讯。

文字编码遇到的一些概念:

《程序世界》笔记4 文字编码问题

字符集:文字的集合就称为字符集(Characterset)。字符集记录了如何用0和1的编码组合代表某一个文字。

字符集包括:ASCII字符集,就是由英文的大写字母、小写字母、数字及特定记号所组成的字符集。还有欧洲语言用的ISO8859,中文的GB2312等,和以表现多语言为目的的Unicode等字符集。

字符编码:字符集中,每个字符都分配一个编码,这称为字符编码。

文字编码方式:计算机上仅仅用整数值来表示文字编码的方式称为文字编码方式。

一个字符集可以对应多种编码方式,对于Unicode字符集,有UTF-8、UTF-16BE、UTF-16LE、UTF-32BE和UTF-32LE等编码方式。

严格来讲,文字编码是指分配给文字的数值,但在一般的对话中,使用文字编码这个词的时候,有时也包含字符集或文字编码方式等意思。

面向英语国家的ASCII字符集

ASCII码由7位二进制数构成,可以表现英文字母、数字和一些记号($、&等),共128个字符。这带来的一个好处就是,对于通信单位的字节(8位)来说,可以省出1位,用于附加错误检测码。

走向英语以外的语言(欧洲篇)ISO8859

为了表现英语以外的欧洲语言,26个文字通常不够。于是就使用ASCII中没有使用的第8位来表现文字。第8位一用,就可以再表现128个文字。

但欧洲国家各国的字符也有所不同,于是就在ISO8859中定义了16种文字集。我们来感受一下:

《程序世界》笔记4 文字编码问题

走向英语以外的国家(中国篇)GB系列(非《程序世界》原书内容)

而世界上还有第三世界国家,他们的文字各不相同。如何用0和1的组合表示呢。于是各个国家就编制了各自的字符集。中国也是如此。目前大家经常遇到的就是gb2312,gbk,gb18030三个字符集。

GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,GB 2312 标准共收录 6763 个汉字。

GBK 即汉字内码扩展规范,GBK 共收入 21886 个汉字和图形符号。

GB 18030,全称:国家标准 GB 18030-2005《信息技术中文编码字符集》GB 18030 与 GB 2312-1980 和 GBK 兼容,共收录汉字70244个。

gb18030的编码方式:(随便看看就好)

GB 18030 编码是一二四字节变长编码。

  • 单字节,其值从 0 到 0x7F,与 ASCII 编码兼容。

  • 双字节,第一个字节的值从 0x81 到 0xFE,第二个字节的值从 0x40 到 0xFE(不包括0x7F),与 GBK 标准兼容。

  • 四字节,第一个字节的值从 0x81 到 0xFE,第二个字节的值从 0x30 到 0x39,第三个字节从0x81 到 0xFE,第四个字节从 0x30 到 0x39。

走向大一统Unicode(非《程序世界》原书内容)

截止到本文时,现在最新的unicode标准是2017年制定的。包括136,690个字符。注意:现在,Unicode放弃了16位方式,而用21位来表示一个文字。现在Unicode的有效编码范围是0~0x10ffff,能够表示111万4111个文字。不管有多少字,这肯定够用了。

《程序世界》笔记4 文字编码问题

unicode的编码方式:

utf-16utf-32的编码方式目前已经没有任何价值了,不推荐使用。所以我们只介绍目前最为流行的utf-8编码方式:

《程序世界》笔记4 文字编码问题

  • 第一字节第8位(最上位)不是ON的字节,表示1字节文字(ASCII的空间)。

  • 只要看第一字节位的式样就能知道接下来还有几个字节,数数有几位是1就行了。

  • 多字节文字的各个字节,除了第一字节以外,都以10开始(第8位是1,第7位是0)。即便不从字符串的先头开始扫描,也能知道构成这个文字的第一个字节在哪里。

  • 采用以字节为单位的编码方式,没有字节顺序问题。

大小端存储模式:

最后我们补充一下字节顺序的问题,也就是所谓的大小端问题。相信你知道这个故事。

littleendian和bigendian这两个词,来源于英国讽刺作家斯威夫特所著的《格列佛游记》(1726年)。第一篇Lilliput国航行记中讲述,剥鸡蛋从尖的那一头开始剥的Lilliput国(littleendian)与从圆的那一头开始剥的Blefuscu国(bigendian)之间战争的故事。战争的原因在于剥鸡蛋的方法有分歧。

那么什么是大端模式和小端模式呢?

对于一个字节的内容,不存在大小端的问题。而如int,long等多字节表示一个内容的数据类型来说,是把数据的高字节包存在低地址还是高地址就有了分歧。

大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。主要用于网络传输。

小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。个人pc中主要是小端模式。

如何记忆呢?你就记变大了就拧巴了。

比如:0x12345678这个值。

在小端是的内存里是这样的:低地址端—78 56 34 12—高地址端

而在大端是这样的:低地址端—12 34 56 78—高地址端

下面是一个判断你的电脑的大小端的小段代码:

《程序世界》笔记4 文字编码问题

相关阅读

关键词不能为空

经济新闻_金融新闻_财经要闻_理财投资_理财保险_百色金融新闻网