1、1Computer System Organization and Architecture2.1 2.1 数据的表示方法数据的表示方法2.2 2.2 二进制数据的编码及加减运算二进制数据的编码及加减运算 2.3 2.3 定点二进制乘法运算定点二进制乘法运算 2.4 2.4 定点除法运算定点除法运算2.5 2.5 浮点运算浮点运算2.6 2.6 运算器的基本部件运算器的基本部件2.7 2.7 数据校验码数据校验码 2Computer System Organization and Architecture返回目录 在计算机系统中,数据的类型有多种多样。如在计算机系统中,数据的类型有多种多样。如
2、文件、图、表、树、阵列、队列、链表、栈、向量文件、图、表、树、阵列、队列、链表、栈、向量、串、实数、整数、布尔数以及字符等。、串、实数、整数、布尔数以及字符等。数据表示研究的是计算机硬件能够直接识别、可数据表示研究的是计算机硬件能够直接识别、可以被指令系统直接调用的那些数据类型。数据表示以被指令系统直接调用的那些数据类型。数据表示是数据类型中最常用、也是相对比较简单、用硬件是数据类型中最常用、也是相对比较简单、用硬件实现相对比较容易的几种,如定点数实现相对比较容易的几种,如定点数(小数和整数小数和整数)、逻辑数、逻辑数(布尔数布尔数)、浮点数、浮点数(实数实数)、十进制数、字、十进制数、字符、
3、字符串、堆栈以及向量等。符、字符串、堆栈以及向量等。本节主要介绍数值型数据和字符型数据的表示本节主要介绍数值型数据和字符型数据的表示方法。方法。3Computer System Organization and Architecture返回目录 在计算机中,广泛采用的是仅用在计算机中,广泛采用的是仅用“0 0”和和“1 1”两个两个基本符号组成的二进制码。这是因为:基本符号组成的二进制码。这是因为:(1 1)二进制码在物理上最容易实现,即可以容易找到)二进制码在物理上最容易实现,即可以容易找到具有两个稳定状态且能方便地控制状态转换的物理具有两个稳定状态且能方便地控制状态转换的物理器件,可以用两
4、个状态分别表示二进制码的基本符器件,可以用两个状态分别表示二进制码的基本符号号“0 0”和和“1 1”;(2 2)用二进制码表示的二进制数,其编码、记数和算)用二进制码表示的二进制数,其编码、记数和算术运算规则简单,容易用数字电路实现,为提高计术运算规则简单,容易用数字电路实现,为提高计算机的运算速度和降低实现成本奠定了基础;算机的运算速度和降低实现成本奠定了基础;(3 3)二进制码的两个基本符号)二进制码的两个基本符号“0 0”和和“1 1”,能方,能方便地与逻辑命题的便地与逻辑命题的“否否”和和“是是”,或者称为,或者称为“假假”和和“真真”相对应,为计算机中的逻辑运算和程序相对应,为计算
5、机中的逻辑运算和程序中的逻辑判断提供便利条件。中的逻辑判断提供便利条件。4Computer System Organization and Architecture返回目录 数值型数据是用于表示数量大小的。在使数值型数据是用于表示数量大小的。在使用数值数据时,经常用到数值范围和数据精度用数值数据时,经常用到数值范围和数据精度两个概念。数值范围是指一种类型的数据所能两个概念。数值范围是指一种类型的数据所能表示的最大值和最小值;数据精度是指通常用表示的最大值和最小值;数据精度是指通常用实数所能给出的有效数字的位数。这两个概念实数所能给出的有效数字的位数。这两个概念是不同的。在计算机中,它们的值与用
6、多少个是不同的。在计算机中,它们的值与用多少个二进制位表示某种类型的数据,以及对这些位二进制位表示某种类型的数据,以及对这些位进行何种编码有关。机器中的二进制数据有三进行何种编码有关。机器中的二进制数据有三种表示方式:定点数(包括定点小数和定点整种表示方式:定点数(包括定点小数和定点整数)、浮点数,还有用数)、浮点数,还有用4 4位二进制表示一个十位二进制表示一个十进制数位的压缩数字串。进制数位的压缩数字串。5Computer System Organization and Architecture返回目录定点数定点数小数点位置固定的数称为定点数。按小数点的位小数点位置固定的数称为定点数。按小
7、数点的位置可以分为定点小数和定点整数。置可以分为定点小数和定点整数。(1 1)定点小数)定点小数定点小数,是指小数点准确固定在数据某个位置定点小数,是指小数点准确固定在数据某个位置上的小数,从实用角度看,都把小数点固定在上的小数,从实用角度看,都把小数点固定在最高数据位的左边,小数点前边再设置一位符最高数据位的左边,小数点前边再设置一位符号位。按此规则,任何一个小数都可以被写成号位。按此规则,任何一个小数都可以被写成:N=NN=NS S.N.N-1-1N N-2-2N N-m-m 6Computer System Organization and Architecture返回目录 定点小数表示
8、法主要用在早期的计算机中定点小数表示法主要用在早期的计算机中,它最节省硬件。随着计算机硬件成本的大幅,它最节省硬件。随着计算机硬件成本的大幅度降低,现代的通用计算机都被设计成能处理度降低,现代的通用计算机都被设计成能处理与计算多种类型数值数据的计算机。这里主要与计算多种类型数值数据的计算机。这里主要是通过定点小数说明数值数据有不同的编码方是通过定点小数说明数值数据有不同的编码方案。当然也应指出,定点小数也被用来表示浮案。当然也应指出,定点小数也被用来表示浮点数的尾数部分。点数的尾数部分。7Computer System Organization and Architecture返回目录 (2
9、2)定点整数)定点整数 整数表示的数据的最小单位为整数表示的数据的最小单位为1 1,可认为它,可认为它是小数点定在数值最低位右边的一种数据。整是小数点定在数值最低位右边的一种数据。整数又被分成为带符号和不带符号的两类。对带数又被分成为带符号和不带符号的两类。对带符号的整数来说,符号位被安排在最高位,任符号的整数来说,符号位被安排在最高位,任何一个带符号的整数都可以被写成:何一个带符号的整数都可以被写成:N=NN=NS SN Nn n-1-1.N.N2 2N N1 1N N0 0 8Computer System Organization and Architecture返回目录 浮点数浮点数
10、早期的计算机系统只有定点数据表示。这种早期的计算机系统只有定点数据表示。这种计算机系统的优点是硬件结构比较简单,但有计算机系统的优点是硬件结构比较简单,但有以下三个明显的缺点:以下三个明显的缺点:(1 1)编程困难。程序设计人员必须首先确)编程困难。程序设计人员必须首先确定机器小数点的位置,并把所有参与运算的数定机器小数点的位置,并把所有参与运算的数据的小数点都对齐到这个位置上,然后计算机据的小数点都对齐到这个位置上,然后计算机才能正确进行运算。也就是说,编程人员首先才能正确进行运算。也就是说,编程人员首先要把参与运算的数据扩大或缩小某一个倍数后要把参与运算的数据扩大或缩小某一个倍数后送入机器
11、中,等运算结果出来后再恢复到正确送入机器中,等运算结果出来后再恢复到正确的数值。的数值。9Computer System Organization and Architecture返回目录 (2 2)是可表示数的范围小。例如,一台字)是可表示数的范围小。例如,一台字长为长为1616位的计算机所能表示的整数的范围是位的计算机所能表示的整数的范围是-3276832768到到3276732767,字长为,字长为3232位的计算机所能表示位的计算机所能表示的整数的范围是的整数的范围是-2-23131到到2 23131-1-1。从另一个角度看。从另一个角度看,为了能表示两个大小相差很大的数据,需要,为了
12、能表示两个大小相差很大的数据,需要有很长的机器字长。有很长的机器字长。(3 3)数据存储单元的利用率往往很低。例)数据存储单元的利用率往往很低。例如,为了把小数点的位置确定在数据最高位之如,为了把小数点的位置确定在数据最高位之前,必须把所有参与运算的数据至少都除以这前,必须把所有参与运算的数据至少都除以这些数据中的最大数,只有这样才能把所有数据些数据中的最大数,只有这样才能把所有数据都化成纯小数,因此造成很多数据有大量的前都化成纯小数,因此造成很多数据有大量的前置零,从而浪费了许多数据存储单元。置零,从而浪费了许多数据存储单元。10Computer System Organization an
13、d Architecture返回目录 与定点数相反,浮点数是指小数点位置不固定的与定点数相反,浮点数是指小数点位置不固定的数据。通常用以下形式表示数据。通常用以下形式表示:N=M N=M R RE E 其中,其中,M M(mantissamantissa)被称为浮点数的尾数,)被称为浮点数的尾数,R R(radixradix)被称为阶码的基数,)被称为阶码的基数,E E(exponentexponent)被称为)被称为浮点数的阶码。计算机中一般规定浮点数的阶码。计算机中一般规定 R R 为为 2 2、8 8 或或 1616,是一个确定的常数,不需要在浮点数中明确表,是一个确定的常数,不需要在浮
14、点数中明确表示出来。因此,要表示浮点数,一是要给出尾数示出来。因此,要表示浮点数,一是要给出尾数 M M 的值,通常用定点小数形式表示,它决定了浮点数的值,通常用定点小数形式表示,它决定了浮点数的数据精度,即可以给出的有效数字的位数。二是的数据精度,即可以给出的有效数字的位数。二是要给出阶码,通常用整数形式表示,它指出的是小要给出阶码,通常用整数形式表示,它指出的是小数点在数据中的位置,决定了浮点数的表示范围。数点在数据中的位置,决定了浮点数的表示范围。浮点数也要有符号位。浮点数也要有符号位。11Computer System Organization and Architecture返回目录
15、在计算机中,浮点数通常被表示成如下格式:在计算机中,浮点数通常被表示成如下格式:M MS S是尾数的符号位,即浮点数的符号位,安排在是尾数的符号位,即浮点数的符号位,安排在最高一位;最高一位;E E是阶码,紧跟在符号位之后,占用是阶码,紧跟在符号位之后,占用m m位,其中包位,其中包含一位阶码的符号位;含一位阶码的符号位;M M是尾数,在低位部分,占用是尾数,在低位部分,占用n n位。位。12Computer System Organization and Architecture返回目录 按国际电子电气工程师协会按国际电子电气工程师协会IEEE754IEEE754标准,标准,规定常用的浮点数
16、的格式为规定常用的浮点数的格式为 符号 符号位符号位 阶码阶码 尾数尾数 总位数总位数 单精度浮点数单精度浮点数 1 8 23 32 1 8 23 32 双精度浮点数双精度浮点数 1 11 52 641 11 52 64临时浮点数临时浮点数 1 15 64 801 15 64 8013Computer System Organization and Architecture返回目录十进制数的编码与运算十进制数的编码与运算 十进制数的每一个数位的基为十进制数的每一个数位的基为1010,但到了,但到了计算机内部,出于存储与计算方便的目的,必计算机内部,出于存储与计算方便的目的,必须采用二进制码对每
17、个十进制数位进行编码,须采用二进制码对每个十进制数位进行编码,所需要的最少的二进制码的位数为所需要的最少的二进制码的位数为 log log 2 21010,取整数为取整数为 4 4。4 4 位二进制码有位二进制码有 16 16 种不同的组种不同的组合,怎样从中选择出合,怎样从中选择出 10 10 个组合来表示十进制个组合来表示十进制数位的数位的 0 0 9 9,有非常多的可行方案,下面,有非常多的可行方案,下面介绍其中最常用的几种。介绍其中最常用的几种。14Computer System Organization and Architecture返回目录(1 1)有权码)有权码 权是指表示一个
18、十进制数位的权是指表示一个十进制数位的4 4位二进制码的位二进制码的每一位有确定的位权。一般用每一位有确定的位权。一般用84218421码,即码,即4 4个二进个二进制码位的权从高向低分别为制码位的权从高向低分别为8 8、4 4、2 2和和1 1,使用二进,使用二进制码的制码的 00000000、00010001、1001 1001 这这1010个组合,分别个组合,分别表示表示0 0到到9 9这这1010个数。这种编码的优点是这个数。这种编码的优点是这4 4位二进位二进制码之间满足二进制的进位规则,而十进制数位之制码之间满足二进制的进位规则,而十进制数位之间则是十进制规则,因此这种编码被称为以
19、二进制间则是十进制规则,因此这种编码被称为以二进制编码的十进制(编码的十进制(binary coded decimalbinary coded decimal)数,简称)数,简称BCDBCD码。另一个优点是在数字符的码。另一个优点是在数字符的 ASCIIASCII码与这种码与这种编码之间的转换方便,即取每个数字符的编码之间的转换方便,即取每个数字符的 ASCIIASCII码码的低的低4 4位的值便直接得到该数字的位的值便直接得到该数字的BCDBCD码,输入输出码,输入输出操作非常简便。操作非常简便。15Computer System Organization and Architecture返
20、回目录 在计算机内实现在计算机内实现 BCDBCD码之间的算术运算要复杂码之间的算术运算要复杂一些,在某些情况下,需要对加法运算的结果进一些,在某些情况下,需要对加法运算的结果进行修正。修正规则是:行修正。修正规则是:如果两个如果两个84218421码数相加之和等于或小于码数相加之和等于或小于10011001,即十进制的即十进制的9 9,不需要修正,如例,不需要修正,如例2.12.1;例例2.12.1:1+71+7 0 0 0 1 0 0 0 1 +0 1 1 1+0 1 1 1 1 0 0 0 1 0 0 0 1+7=8 1+7=8 的运算结果是正确的,不必修正。的运算结果是正确的,不必修正
21、。16Computer System Organization and Architecture返回目录 如果相加之和在如果相加之和在1010到到1515之间,一方面应向高位产之间,一方面应向高位产生一个进位,本位还要进行加生一个进位,本位还要进行加6 6 修正,进位是在进修正,进位是在进行加行加 6 6 修正时产生的,如例修正时产生的,如例2.22.2;例例2.22.2:3+93+9 0 0 1 1 0 0 1 1+1 0 0 1 +1 0 0 1 1 0 0 0 1 1 0 0 0 1+0 1 1 0 +0 1 1 0 1 0 1 1 1 1 0 1 1 1 8+9 8+9的结果也必须用加
22、的结果也必须用加 6 6 修正,进位是在相加修正,进位是在相加过程中产生的。过程中产生的。17Computer System Organization and Architecture返回目录 另外几种有权码,如另外几种有权码,如 24212421、52115211、4311 4311 码(如表码(如表 2.1 2.1 所示),也都是用所示),也都是用 4 4 位有权二位有权二进制码表示一个十进制数位,但这进制码表示一个十进制数位,但这 4 4 位二进位二进制码之间并不符合二进制规则。这几种有权码制码之间并不符合二进制规则。这几种有权码的特性表现如下所述。当采用的特性表现如下所述。当采用 24
23、212421、5211 5211 和和 4311 4311 编码时,任何两个十进制数位相加产生编码时,任何两个十进制数位相加产生 10 10 或大于或大于 10 10 的结果,相应的二进制码相加的结果,相应的二进制码相加会向高一位产生进位,有利于实现逢十进位的会向高一位产生进位,有利于实现逢十进位的记数和加法规则。任何两个相加之和等于记数和加法规则。任何两个相加之和等于 9 9 的十进制数的二进制码,互为反码,即满足十的十进制数的二进制码,互为反码,即满足十进制数按进制数按 9 9 互补的关系,有利于简化减法处互补的关系,有利于简化减法处理。理。18Computer System Organi
24、zation and Architecture返回目录19Computer System Organization and Architecture返回目录(2 2)无权码)无权码 无权是指表示一位十进制数的无权是指表示一位十进制数的4 4位二进制码的每位二进制码的每一位没有确定的位权。在采用的无权码的一些方案一位没有确定的位权。在采用的无权码的一些方案中,早期用的比较多的是余中,早期用的比较多的是余3 3码(码(Excess-3 CodeExcess-3 Code),它是把原二进制的每个代码都加,它是把原二进制的每个代码都加00110011值得到的,值得到的,其主要优点是执行十进制数相加时,
25、能正确地产生其主要优点是执行十进制数相加时,能正确地产生进位信号,而且还给减法运算带来了方便。采用余进位信号,而且还给减法运算带来了方便。采用余3 3码执行加法运算的规则是:码执行加法运算的规则是:当两个余当两个余3 3码相加不产生进位时,应从所得结果中码相加不产生进位时,应从所得结果中减去减去 00110011;产生进位时,一方面应将进位信号送入高位余产生进位时,一方面应将进位信号送入高位余3 3码,本位还应执行加码,本位还应执行加00110011的修正操作,高位应执行的修正操作,高位应执行减减00110011的修正操作。的修正操作。20Computer System Organizatio
26、n and Architecture返回目录(1 1)(2121)1010+(7575)1010=(9696)1010 0101 0100 0101 0100 +1010 1000+1010 1000 1111 1100 1111 1100 -0011 0011 -0011 0011 减减3 3修正修正 1100 1001 1100 1001 结果为余结果为余3 3码码 21Computer System Organization and Architecture返回目录(2 2)()(2828)1010+(5656)1010=(8484)1010 0101 1011 0101 1011+10
27、00 1001+1000 1001 1101 1 0100 1101 1 0100 十进制数位之间产生进位,十进制数位之间产生进位,11101110-0011+0011-0011+0011 两个数位分别执行减两个数位分别执行减3 3和加和加3 3修正修正 1011 01111011 0111 22Computer System Organization and Architecture返回目录 格雷码是另外一种常用的二格雷码是另外一种常用的二-十进制编码,十进制编码,它是使任何两个相邻的编码之间只有一个二进制它是使任何两个相邻的编码之间只有一个二进制位的状态不同,其余位的状态不同,其余 3 3
28、 个二进制位必须有相同个二进制位必须有相同状态,因此格雷码有多种编码方法。这种编码方状态,因此格雷码有多种编码方法。这种编码方法的好处是,从一个编码变到下一个相邻编码时法的好处是,从一个编码变到下一个相邻编码时,只有一位的状态发生变化,有利于得到更好的,只有一位的状态发生变化,有利于得到更好的译码波形,在模拟译码波形,在模拟数字与数字数字与数字模拟转换的电模拟转换的电路中得到更好的运行结果。格雷码又被称为循环路中得到更好的运行结果。格雷码又被称为循环码。用码。用 4 4 个二进制位的格雷码表示个二进制位的格雷码表示 1 1 位十进制位十进制数的数的 10 10 个状态的方案很多。表个状态的方案
29、很多。表 2.22.2给出余给出余3 3码码和一种格雷码编码值。和一种格雷码编码值。23Computer System Organization and Architecture返回目录24Computer System Organization and Architecture返回目录(3 3)数字串在计算机内的表示与存储)数字串在计算机内的表示与存储 人们习惯使用十进制数,而在计算机内,采人们习惯使用十进制数,而在计算机内,采用二进制表示和处理数据更方便。因此,在计算用二进制表示和处理数据更方便。因此,在计算机输入和输出数据时,要进行十进制到二进制和机输入和输出数据时,要进行十进制到二进制
30、和二进制到十进制的进制转换处理,这是多数应用二进制到十进制的进制转换处理,这是多数应用环境中的实际情况。而在某些特定的应用领域中环境中的实际情况。而在某些特定的应用领域中,如商业统计,其特点是运算简单而数据量很大,如商业统计,其特点是运算简单而数据量很大,这样使输入输出过程中的进制转换所占的时间,这样使输入输出过程中的进制转换所占的时间比例很大。从提高机器的运行效率考虑,也可以比例很大。从提高机器的运行效率考虑,也可以采用在计算机内部直接用十进制方式表示和处理采用在计算机内部直接用十进制方式表示和处理数据,这要求计算机内部增加少量硬件线路。目数据,这要求计算机内部增加少量硬件线路。目前,大多数
31、通用性较强的计算机,都能直接处理前,大多数通用性较强的计算机,都能直接处理十进制形式表示的数值。采用十进制表示数据的十进制形式表示的数值。采用十进制表示数据的另一个目的,是提高数据的表示范围和运算精度另一个目的,是提高数据的表示范围和运算精度。25Computer System Organization and Architecture返回目录 十进制数串在计算机内主要有两种表示形式。十进制数串在计算机内主要有两种表示形式。字符串形式。字符串形式。一个字节存放一个十进制的数位或符号位,存放的一个字节存放一个十进制的数位或符号位,存放的是是ASCIIASCII码值。码值。例,例,+132+132
32、的编码为十六进制的的编码为十六进制的2 2B 31 33 32B 31 33 32,在主,在主存中占存中占4 4个字节。个字节。在主存中,这样的一个十进制数占用连续的多在主存中,这样的一个十进制数占用连续的多个字节,故为了指明这样一个数,需要给出该数在主个字节,故为了指明这样一个数,需要给出该数在主存中的起始地址和位数(串的长度)。对用这种方式存中的起始地址和位数(串的长度)。对用这种方式表示的数据进行算术运算是很不方便的表示的数据进行算术运算是很不方便的,用这种方式用这种方式表示的十进制字符串,主要用在非数值计算的有关应表示的十进制字符串,主要用在非数值计算的有关应用领域中。用领域中。26C
33、omputer System Organization and Architecture返回目录压缩的十进制数串形式。压缩的十进制数串形式。一个字节存放两个十进制的数位,它比前一种一个字节存放两个十进制的数位,它比前一种形式节省存储空间,又便于直接完成十进制数的算形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。用压缩的术运算,是广泛采用的较为理想的方法。用压缩的十进制数串表示一个数,要占用主存连续的多个字十进制数串表示一个数,要占用主存连续的多个字节,每个数位占用半个字节(即节,每个数位占用半个字节(即 4 4 个二进制位)个二进制位),其值可用二,其值可用二-
34、十进制编码(十进制编码(BCD BCD 码,数字符的码,数字符的 ASCIIASCII码的低码的低 4 4 位)表示,符号位也占用半个字节位)表示,符号位也占用半个字节并存放在最低数字位之后,其值选用并存放在最低数字位之后,其值选用 4 4 位编码的位编码的 6 6 种冗余状态中的有关值,如用种冗余状态中的有关值,如用 1100 1100 表示正号,表示正号,用用 1101 1101 表示负号。在这种表示中,规定十进制数表示负号。在这种表示中,规定十进制数值的位数加符号位之和必须为偶数,当其和不为偶值的位数加符号位之和必须为偶数,当其和不为偶数时,应在最高数字位之前补一个数时,应在最高数字位之
35、前补一个 0 0,此时,表示,此时,表示一个数要占用该偶数值位的一半那么多个字节。一个数要占用该偶数值位的一半那么多个字节。27Computer System Organization and Architecture返回目录 例如:例如:+132+132 被表示成被表示成 13 213 2C C,-12-12被表示被表示成成 01 201 2D D,各占两个字节。要指明一个压缩的,各占两个字节。要指明一个压缩的十进制数串,也需要给出它在主存中的首地址十进制数串,也需要给出它在主存中的首地址和它的数字位个数(不含符号位),又称位长和它的数字位个数(不含符号位),又称位长,位长为,位长为 0 0
36、 的数其值为的数其值为 0 0。压缩的十进制数。压缩的十进制数串表示方法的优点是位长可变,许多机器中规串表示方法的优点是位长可变,许多机器中规定该长度从定该长度从 0 0 到到 3131,有的可能更长。,有的可能更长。28Computer System Organization and Architecture返回目录 字符数据是指字符、字符串、图形符号和字符数据是指字符、字符串、图形符号和汉字等各种数据。字符是计算机中使用最多的汉字等各种数据。字符是计算机中使用最多的信息形式之一,是人与计算机通信、交互作用信息形式之一,是人与计算机通信、交互作用的重要媒介。字符数据一般不用来表示数值的的重要
37、媒介。字符数据一般不用来表示数值的大小,因此又被称为非数值数据。在计算机中大小,因此又被称为非数值数据。在计算机中,要为每个字符指定一个确定的编码,作为识,要为每个字符指定一个确定的编码,作为识别和使用这些字符的依据。这些编码的值,是别和使用这些字符的依据。这些编码的值,是用一定位数的二进制码的两个基本符号用一定位数的二进制码的两个基本符号“1 1”和和“0 0”进行编码给出的。进行编码给出的。29Computer System Organization and Architecture返回目录1.1.ASCIIASCII码和码和EBCDICEBCDIC码码 在计算机中使用得最多的、最普遍的是
38、在计算机中使用得最多的、最普遍的是ASCIIASCII(American national Standard Code American national Standard Code for Information Interchangefor Information Interchange,用于信息交,用于信息交换的美国标准代码)字符编码,如表换的美国标准代码)字符编码,如表2.32.3所示所示。30Computer System Organization and Architecture返回目录31Computer System Organization and Architecture返
39、回目录 从表从表2.32.3中可以看到:每个字符是用中可以看到:每个字符是用7 7位二进制位二进制码表示的,其排列次序为码表示的,其排列次序为b b6 6b b5 5b b4 4b b3 3b b2 2b b1 1b b0 0,在表中的,在表中的b b6 6b b5 5b b4 4为高位部分,为高位部分,b b3 3b b2 2b b1 1b b0 0为低位部分。为低位部分。ASCIIASCII字符编码是由字符编码是由128128个字符组成的字符集个字符组成的字符集,包括,包括1010个十进制数字(个十进制数字(0909)、)、5252个英文大写和个英文大写和小写字母(小写字母(AZAZ,az
40、az)、)、3434个专用符号和个专用符号和3232个控个控制符号。其中编码值制符号。其中编码值031031不对应任何可印刷(或不对应任何可印刷(或称有字形)字符,通常称它们为控制字符,用于称有字形)字符,通常称它们为控制字符,用于通信中的通信控制或对计算机设备的功能控制。通信中的通信控制或对计算机设备的功能控制。编码值为编码值为 32 32 的是空格(或间隔)字符的是空格(或间隔)字符SPSP。编码。编码值为值为127127的是删除控制的是删除控制DELDEL码。其余的码。其余的9494个字符称个字符称为可印刷字符,有人把空格也计入可印刷字符时为可印刷字符,有人把空格也计入可印刷字符时,则称
41、有,则称有9595个可印刷字符。个可印刷字符。32Computer System Organization and Architecture返回目录 用用7 7位二进制表示一个字符的位二进制表示一个字符的ASCIIASCII码简称为码简称为ASCII-7ASCII-7码,一个字符在计算机内实际上用码,一个字符在计算机内实际上用 8 8 位表示。正常情况下,最高一位位表示。正常情况下,最高一位 b b7 7为为“0 0”。在。在需要奇偶校验时,这一位可用于存放奇偶校验需要奇偶校验时,这一位可用于存放奇偶校验位的值,此时称这一位为校验位。位的值,此时称这一位为校验位。ASCII-7ASCII-7码
42、中有如下两个编码规律:码中有如下两个编码规律:字符字符0909这这1010个数字符的高个数字符的高3 3位编码为位编码为011011,低,低4 4位为位为0000100100001001。当去掉高。当去掉高3 3位的值时位的值时,低,低4 4位正好是二进制形式的位正好是二进制形式的0909。这既满足正。这既满足正常的排序关系,又有利于完成常的排序关系,又有利于完成ASCIIASCII码与二进码与二进制码之间的转换。制码之间的转换。33Computer System Organization and Architecture返回目录 英文字母的编码值满足正常的字母排序关系英文字母的编码值满足正常
43、的字母排序关系,且大、小写英文字母编码的对应关系相当简便,且大、小写英文字母编码的对应关系相当简便,差别仅表现在,差别仅表现在b b5 5一位的值为一位的值为0 0或或1 1,有利于大、小,有利于大、小写字母之间的编码变换。写字母之间的编码变换。另有一种字符编码,是主要用在另有一种字符编码,是主要用在 IBM IBM 计算机计算机中的中的 EBCDICEBCDIC(Extended Binary Coded Decimal Extended Binary Coded Decimal Interchange CodeInterchange Code)编码。它采用)编码。它采用 8 8 位编码,有
44、位编码,有 256 256 个编码状态,但只选用其中一部分。个编码状态,但只选用其中一部分。0 0 9 9 这这 10 10 个数字字符的高个数字字符的高 4 4 位编码为位编码为 11111111,低,低 4 4 位仍为位仍为 0000 0000 10011001。大小写英文字母的编码同。大小写英文字母的编码同样满足正常的排序要求,而且有简单的对应关系样满足正常的排序要求,而且有简单的对应关系,即同一个字母的大小写的编码值只有最高的第,即同一个字母的大小写的编码值只有最高的第二位的值不同,易于识别与转换。二位的值不同,易于识别与转换。34Computer System Organizatio
45、n and Architecture返回目录字符串字符串 随着计算机在文字处理与信息管理中的广泛应随着计算机在文字处理与信息管理中的广泛应用,字符串已成为最常用的数据类型之一。用,字符串已成为最常用的数据类型之一。字符串是指连续的一串字符,通常方式下,字符串是指连续的一串字符,通常方式下,它们在主存中占用连续的多个字节空间,每个字它们在主存中占用连续的多个字节空间,每个字节存一个字符代码。当主存字由节存一个字符代码。当主存字由 2 2 个或个或 4 4 个字个字节组成时,在同一个主存字中,既有按从低位字节组成时,在同一个主存字中,既有按从低位字节到高位字节的顺序存放字符串内容的,也有按节到高位
46、字节的顺序存放字符串内容的,也有按从高位字节到低位字节的顺序存放字符串内容的从高位字节到低位字节的顺序存放字符串内容的。这两种存放方式都是常用方式,不同的计算机。这两种存放方式都是常用方式,不同的计算机可以选用其中任何一种。例如,字符串可以选用其中任何一种。例如,字符串 IF A IF A B THEN READB THEN READ(C C)(最后一个字符是空格)就可)(最后一个字符是空格)就可以有两种不同的存放方式如图以有两种不同的存放方式如图2.1 2.1 所示。所示。35Computer System Organization and Architecture返回目录36Compute
47、r System Organization and Architecture返回目录中文的编码表示中文的编码表示 汉字处理技术是我国计算机推广工作中必须汉字处理技术是我国计算机推广工作中必须要解决的问题,与西文字符比较,汉字数量大要解决的问题,与西文字符比较,汉字数量大,字形复杂,同音字多,这就给汉字在计算机,字形复杂,同音字多,这就给汉字在计算机内部的存储、传输、交换、输入和输出等带来内部的存储、传输、交换、输入和输出等带来了一系列的问题。为了能直接使用西文标准键了一系列的问题。为了能直接使用西文标准键盘输入汉字,必须为汉字设计相应的编码,以盘输入汉字,必须为汉字设计相应的编码,以适应计算机
48、处理汉字的需要。适应计算机处理汉字的需要。下面介绍三种汉字编码方法。下面介绍三种汉字编码方法。37Computer System Organization and Architecture返回目录(1 1)国标码)国标码 19801980年我国颁布了年我国颁布了信息交换用汉字编码信息交换用汉字编码字符集基本集字符集基本集代号为代号为(GB2312GB231280)80),是国家,是国家规定的用于汉字信息处理使用的代码依据,这规定的用于汉字信息处理使用的代码依据,这种编码称为国标码。在国标码的字符集中共收种编码称为国标码。在国标码的字符集中共收录了录了67636763个常用汉字和个常用汉字和68
49、2682个图形符号,其中个图形符号,其中一级汉字一级汉字37553755个,以汉语拼音为序排列,二级个,以汉语拼音为序排列,二级汉字汉字30083008个,以偏旁部首进行排列。个,以偏旁部首进行排列。38Computer System Organization and Architecture返回目录(2 2)机内码机内码 汉字的机内码是计算机系统内部对汉字进行存汉字的机内码是计算机系统内部对汉字进行存储、处理和传输统一使用的代码,又称为汉字内储、处理和传输统一使用的代码,又称为汉字内码。机内码是根据码。机内码是根据GB2312-80GB2312-80进行编码的。在计算进行编码的。在计算机中,
50、通常用两个字节表示一个汉字。由于汉字机中,通常用两个字节表示一个汉字。由于汉字数量多,一般用数量多,一般用2 2个字节来存放汉字的内码,其中个字节来存放汉字的内码,其中一个字节用于表示汉字的区号,另一字节用于表一个字节用于表示汉字的区号,另一字节用于表示汉字的位号,但是这种简单的表示方法不能区示汉字的位号,但是这种简单的表示方法不能区分汉字字符与英文字符。为了在计算机内区分汉分汉字字符与英文字符。为了在计算机内区分汉字字符和英文字符,以免造成混乱,一般将英文字字符和英文字符,以免造成混乱,一般将英文字符的机内码用一个字节来存放其字符的机内码用一个字节来存放其ASCIIASCII码,并将码,并将