合肥高新城创建设投资有限公司网站,网页在线代理上网,wordpress 扫码付款,百度直播平台声明#xff1a;本系列文章参考了网上的大量资料#xff0c;除了少部分资料由于未作大量修改(但基本也有少量修改#xff0c;因为网上文章随意性较大#xff0c;如若不改反而让人迷糊)而标明了出处之外#xff0c;其余由于已作了大量改写#xff0c;因此没有再一一说明本系列文章参考了网上的大量资料除了少部分资料由于未作大量修改(但基本也有少量修改因为网上文章随意性较大如若不改反而让人迷糊)而标明了出处之外其余由于已作了大量改写因此没有再一一说明在此对原作者表示歉意并感谢。另外文中图片部分来自网络部分为本人制作也不再一一说明。同时文中若有错漏还请直接招呼板砖不用客气。
关键术语解释(上)
一、位
1.
位即比特(Bit)亦称二进制位、比特位、位元指二进制数中的一位是计算机中信息表示的最小单位。
Bit是Binary digit二进制数位的缩写由数学家John Wilder Tukey提出习惯上以小写字母b表示如8比特可表示为8b。 2.
每个比特有0和1两个可能的值除了代表数值本身之外还可代表
数值的正、负两种状态如电灯的开、关某根导线上电流的有、无等等抽象逻辑上的是、否或者说真、假。二、字节
1.
在计算机中通常都会使用一连串的位(即比特)称之为位串(即比特串bit string)。很显然计算机系统都不会让你使用任意长度的位串而是使用某个特定长度的位串。
一些常见的位串长度形式具有约定好的名称如半字节(nibble)代表四个位的组合字节(byte)代表8个位的组合还有字(word)、双字(Double word简写为Dword)、四字(Quad word简写为Qword)、十字节(Ten byte简写为Tbyte)等等。
2.
字节(byte)又称为位元组音译为“拜特”(但很少使用这个译名)是计算机中计量存储容量和传输容量的一种基本计量单位是由连续的、固定数量的位(即比特)所组成的位串(即比特串)一般由8个位组成即1 byte 8 bit。习惯上用大写的B表示如3字节可表示为3B。 现代个人计算机(PC)的存储器编址一般是以字节为单位的称之为按字节编址因此字节一般也是存储器的最小存取单位以及处理器的最小寻址单位也有按位寻址、按字寻址等等但在个人计算机上应用不普遍这里不讨论。
3.
字节作为存储器的最小存取单位以及处理器的最小寻址单位这一重要特点跟字符编码的关系极为密切比如码元的单字节与多字节、字节序的大端序与小端序等都与以字节为基础的基本数据类型密切相关(详见后文介绍。
4.
习惯上按照下面的图来排列一个字节上的各个位的顺序即按照从右到左的顺序依次为最低位(第0位)到最高位(第7位) 5.
注意字节不一定非得是8位以前也有过4位、6位、7位、12位或18位作为一个字节的标准比如IBM 70136位字长18位为一字节、IBM 7027位字长7位为一字节、CDC 660060位字长12位为一字节byte等。只是现代计算机的事实标准就是用8位来代表一个字节最终形成这一事实标准除了历史原因和商业原因之外最重要的原因应该是由于二进制的特性2的次方计算更方便快捷。
正是因为这个原因在很多较为严谨的技术规格文献中为了避免产生歧义更倾向于使用8位组(Octet)而不是字节(Byte)这个术语来强调8比特串。
不过由于大众基本上都将字节理解为8比特的8位组因此一般文章中如果未作特别说明基本上都将8位组直接称之为字节或者说字节一般指的是8位组。 三、字与字长
1.
虽然字节是大多数现代计算机的最小存储单位和传输单位但并不代表它是计算机可以最高效地处理的数据单位。
一般来说计算机可以最高效地处理的数据大小应该与其字的字长相同这就涉及到了字及字长的概念。
字在计算机中一串比特位(即位串、比特串)是作为一个整体来处理或运算的这串比特位称为一个计算机字简称字。字通常分为若干个字节。字长即字的长度是指计算机的每个字所包含的位数。字长决定了CPU一次操作所处理的实际比特位数量的多少。字长由CPU对外数据通路的数据总线宽度决定。
2.
计算机处理数据的速率显然和它一次能加工的位数以及进行运算的快慢有关。如果一台计算机的字长是另一台计算机的两倍若两台计算机的速度相同在相同的时间内前者能做的工作一般是后者的两倍。因此字长与计算机的功能和用途有很大的关系是计算机的一个重要技术指标。
在目前来讲桌面平台的处理器字长正处于从32位向64位过渡的时期嵌入式设备基本稳定在32位而在某些专业领域如高端显卡处理器字长早已经达到了64位乃至更多的128位 四、编码
编码(Encode)是信息从一种形式转换为另一种形式的过程比如用预先规定的方法将字符(文字、数字、符号等)、图像、声音或其它对象转换成规定的电脉冲信号或二进制数字。 五、解码
解码(Decode)为编码的逆过程。 六、字符集
1.
字符集(Character Set、Charset)字面上的理解就是字符的集合是一个自然语言文字系统支持的所有字符的集合。字符是各种文字和符号的总称包括文字、数字、字母、音节、标点符号、图形符号等。
例如ASCII字符集定义了128个字符GB2312字符集定义了7445个字符。而字符集准确地来说指的是已编号的字符的有序集合(但不一定是连续的后文有详细介绍)。
2.
常见字符集有ASCII字符集、ISO 8859系列字符集(ISO 8859-1~8859-16)、GB系列字符集(GB2312、GBK、GB18030)、BIG5字符集、Unicode字符集等。 注图中所示微软在GB2312的基础上扩展制订了GBK(Guo-Biao Kuozhan)然后GBK才成为“国家标准”(也有说GBK不是国家标准只是“技术规范指导性文件”)但网上也有资料说是先有GBK(由全国信息技术标准化技术委员会1995年12月1日制订)然后微软才在其内部所用的CP936代码页中以GBK为基础进行了扩展亦即Windows系统中的CP936代码页实际上是GBK编码方案的一个实现(本人更倾向于这后一种说法)。
七、字符编码
1.
字符编码(Character Encoding)是把字符集中的字符按一定方式编码为某指定集合中的某一对象的过程(比如将字符编码为由0和1两个数字所组成的位串模式、由0~9十个数字所组成的自然数序列或电脉冲等)亦即在字符集与指定集合两者之间建立一个对应关系(即映射关系)的过程。这是信息处理的一项基础技术。
因此通常以字符集来定义字符以计算机为基础的信息处理系统则利用电子元件(即硬件)的不同状态的组合来表示、存储和处理字符。
2.
电子元件的不同状态(一般为断开和闭合两种状态)的组合能代表数字系统中的数字(比如断开和闭合代表二进制中的0和1)因此字符编码的过程也就可以理解为将字符转换映射为计算机可以接受的二进制数字的过程这样才便于字符在计算机中表示、存储、处理和传输(包括在网络中传输)。
常见的例子是将常用的拉丁字母表编码成摩斯电码和ASCII码。其中ASCII将字母、数字和其它符号进行编号并且在计算机中直接用7比特的二进制数字来表示这个编号。通常会额外地在最高位(即首位)再增加一个扩充的比特位“0”以便于计算机系统刚好以1个字节(8比特位)的方式来进行处理、存储和传输。 八、字符编码模型
1.
字符编码模型(Character Encoding Model)是反映字符编码系统的结构特点和各构成部分相互关系的模型框架。
2.
由于历史的原因早期一般认为字符集和字符编码是同义词并不需要进行严格区分。因此在像ASCII这样的简单字符集为代表的传统字符编码模型中这两个概念的含义几乎是等同的。
因为在传统字符编码模型中基本上都是将字符集里的字符进行编号(字符编号转化为二进制数后一般不超过一个字节)然后该字符编号就是字符的编码。 但是由统一码(Unicode)和通用字符集(UCS)为代表的现代字符编码模型则没有直接采用ASCII这样的简单字符集的编码思路而是采用了一个全新的编码思路。
3.
这个全新的编码思路将字符集与字符编码的概念更为细致地分解为了以下几个方面
有哪些字符这些字符的编号是什么这些编号如何编码成一系列逻辑层面有限大小的数字即码元序列这些逻辑层面的码元序列如何转换为(即映射为)物理层面的字节序列(即字节流)在某些特殊的传输环境中(比如Email中)再进一步将字节序列进行适应性编码处理。
这几个方面作为一个整体于是构成了现代字符编码模型。
4.
现代字符编码模型之所以要分解为这么几个方面其核心思想是创建一个能够用不同方式来编码的通用字符集。注意这里的关键词“不同方式”与“通用”。
这意味着同一个字符集可以通用于不同的编码方式也就是说可以采用不同的编码方式来对同一个字符集进行编码。字符集与编码方式之间的关系可以是一对多的关系。
更进一步而言在传统字符编码模型中字符编码方式与字符集是紧密结合在一起的而在现代字符编码模型中字符编码方式与字符集脱钩了。用软件工程的专业术语来说就是将之前紧密耦合在一起的字符编码方式与字符集解耦了。
因此为了正确地表示这个现代字符编码模型需要采用更多比“字符集”和“字符编码”更为精确的概念术语来描述。
5.
在Unicode Technical Report (UTR统一码技术报告) #17《UNICODE CHARACTER ENCODING MODEL》中现代字符编码模型分为了5个层次并引入了更多的概念术语来描述下面所涉及到的一些全新的概念术语这里只做简介更详细的解释见后文
第1层 抽象字符表ACR(Abstract Character Repertoire)明确字符的范围(即确定支持哪些字符)第2层 编号字符集CCS(Coded Character Set)用数字编号表示字符(即用数字给抽象字符表ACR中的字符进行编号)第3层 字符编码方式CEF(Character Encoding Form)将字符编号编码为逻辑上的码元序列(即逻辑字符编码)第4层 字符编码模式CES(Character Encoding Scheme)将逻辑上的码元序列映射为物理上的字节序列(即物理字符编码)第5层 传输编码语法TES(Transfer Encoding Syntax)将字节序列作进一步的适应性编码处理
后面将分层予以简要介绍。