计算机组成原理与系统结构-第2章-运算方法及运算器课件.ppt
-
资源ID:70504825
资源大小:1.18MB
全文页数:198页
- 资源格式: PPT
下载积分:20金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
计算机组成原理与系统结构-第2章-运算方法及运算器课件.ppt
1Computer System Organization and Architecture第二章第二章 运算方法及运算器运算方法及运算器 n2.1 2.1 数据的表示方法数据的表示方法n2.2 2.2 二进制数据的编码及加减运算二进制数据的编码及加减运算 n2.3 2.3 定点二进制乘法运算定点二进制乘法运算 n2.4 2.4 定点除法运算定点除法运算n2.5 2.5 浮点运算浮点运算n2.6 2.6 运算器的基本部件运算器的基本部件n2.7 2.7 数据校数据校验码验码 2Computer System Organization and Architecture返回目录2.1 2.1 数据的表示方法数据的表示方法 在在计计算算机机系系统统中中,数数据据的的类类型型有有多多种种多多样样。如如文文件件、图图、表表、树树、阵阵列列、队队列列、链链表表、栈栈、向向量量、串、实数、整数、布尔数以及字符等。串、实数、整数、布尔数以及字符等。数数据据表表示示研研究究的的是是计计算算机机硬硬件件能能够够直直接接识识别别、可可以以被被指指令令系系统统直直接接调调用用的的那那些些数数据据类类型型。数数据据表表示示是是数数据据类类型型中中最最常常用用、也也是是相相对对比比较较简简单单、用用硬硬件件实实现现相相对对比比较较容容易易的的几几种种,如如定定点点数数(小小数数和和整整数数)、逻逻辑辑数数(布布尔尔数数)、浮浮点点数数(实实数数)、十十进进制制数数、字字符、字符串、堆栈以及向量等。符、字符串、堆栈以及向量等。本节主要介绍数值型数据和字符型数据的表示本节主要介绍数值型数据和字符型数据的表示方法。方法。3Computer System Organization and Architecture返回目录 在在计计算算机机中中,广广泛泛采采用用的的是是仅仅用用“0 0”和和“1 1”两两个基本符号组成的二进制码。这是因为:个基本符号组成的二进制码。这是因为:(1 1)二二进进制制码码在在物物理理上上最最容容易易实实现现,即即可可以以容容易易找找到到具具有有两两个个稳稳定定状状态态且且能能方方便便地地控控制制状状态态转转换换的的物物理理器器件件,可可以以用用两两个个状状态态分分别别表表示示二二进进制制码码的的基基本本符符号号“0 0”和和“1 1”;(2 2)用用二二进进制制码码表表示示的的二二进进制制数数,其其编编码码、记记数数和和算算术术运运算算规规则则简简单单,容容易易用用数数字字电电路路实实现现,为为提提高高计计算机的运算速度和降低实现成本奠定了基础;算机的运算速度和降低实现成本奠定了基础;(3 3)二进制码的两个基本符号)二进制码的两个基本符号“0 0”和和“1 1”,能方,能方便地与逻辑命题的便地与逻辑命题的“否否”和和“是是”,或者称为,或者称为“假假”和和“真真”相对应,为计算机中的逻辑运算和程序相对应,为计算机中的逻辑运算和程序中的逻辑判断提供便利条件。中的逻辑判断提供便利条件。4Computer System Organization and Architecture返回目录2.1.12.1.1 数值型数据的表示方法数值型数据的表示方法 数值型数据是用于表示数量大小的。在使数值型数据是用于表示数量大小的。在使用数值数据时,经常用到数值范围和数据精度用数值数据时,经常用到数值范围和数据精度两个概念。数值范围是指一种类型的数据所能两个概念。数值范围是指一种类型的数据所能表示的最大值和最小值;数据精度是指通常用表示的最大值和最小值;数据精度是指通常用实数所能给出的有效数字的位数。这两个概念实数所能给出的有效数字的位数。这两个概念是不同的。在计算机中,它们的值与用多少个是不同的。在计算机中,它们的值与用多少个二进制位表示某种类型的数据,以及对这些位二进制位表示某种类型的数据,以及对这些位进行何种编码有关。机器中的二进制数据有三进行何种编码有关。机器中的二进制数据有三种表示方式:定点数(包括定点小数和定点整种表示方式:定点数(包括定点小数和定点整数)、浮点数,还有用数)、浮点数,还有用4 4位二进制表示一个十进位二进制表示一个十进制数位的压缩数字串。制数位的压缩数字串。5Computer System Organization and Architecture返回目录定点数定点数小小数数点点位位置置固固定定的的数数称称为为定定点点数数。按按小小数数点点的的位位置可以分为定点小数和定点整数。置可以分为定点小数和定点整数。(1 1)定点小数)定点小数定定点点小小数数,是是指指小小数数点点准准确确固固定定在在数数据据某某个个位位置置上上的的小小数数,从从实实用用角角度度看看,都都把把小小数数点点固固定定在在最最高高数数据据位位的的左左边边,小小数数点点前前边边再再设设置置一一位位符符号位。按此规则,任何一个小数都可以被写成:号位。按此规则,任何一个小数都可以被写成:N=NN=NS S.N.N-1-1N N-2-2N N-m-m 6Computer System Organization and Architecture返回目录 定点小数表示法主要用在早期的计算机中,定点小数表示法主要用在早期的计算机中,它最节省硬件。随着计算机硬件成本的大幅度它最节省硬件。随着计算机硬件成本的大幅度降低,现代的通用计算机都被设计成能处理与降低,现代的通用计算机都被设计成能处理与计算多种类型数值数据的计算机。这里主要是计算多种类型数值数据的计算机。这里主要是通过定点小数说明数值数据有不同的编码方案。通过定点小数说明数值数据有不同的编码方案。当然也应指出,定点小数也被用来表示浮点数当然也应指出,定点小数也被用来表示浮点数的尾数部分。的尾数部分。7Computer System Organization and Architecture返回目录 (2 2)定点整数)定点整数 整整数数表表示示的的数数据据的的最最小小单单位位为为1 1,可可认认为为它它是是小小数数点点定定在在数数值值最最低低位位右右边边的的一一种种数数据据。整整数数又又被被分分成成为为带带符符号号和和不不带带符符号号的的两两类类。对对带带符符号号的的整整数数来来说说,符符号号位位被被安安排排在在最最高高位位,任任何一个带符号的整数都可以被写成:何一个带符号的整数都可以被写成:N=N=N NS SN Nn n-1-1.N.N2 2N N1 1N N0 0 8Computer System Organization and Architecture返回目录 浮点数浮点数 早早期期的的计计算算机机系系统统只只有有定定点点数数据据表表示示。这这种种计计算算机机系系统统的的优优点点是是硬硬件件结结构构比比较较简简单单,但但有有以下三个明显的缺点:以下三个明显的缺点:(1 1)编程困难。程序设计人员必须首先确定)编程困难。程序设计人员必须首先确定机器小数点的位置,并把所有参与运算的数据机器小数点的位置,并把所有参与运算的数据的小数点都对齐到这个位置上,然后计算机才的小数点都对齐到这个位置上,然后计算机才能正确进行运算。也就是说,编程人员首先要能正确进行运算。也就是说,编程人员首先要把参与运算的数据扩大或缩小某一个倍数后送把参与运算的数据扩大或缩小某一个倍数后送入机器中,等运算结果出来后再恢复到正确的入机器中,等运算结果出来后再恢复到正确的数值。数值。9Computer System Organization and Architecture返回目录 (2 2)是可表示数的范围小。例如,一台字)是可表示数的范围小。例如,一台字长为长为1616位的计算机所能表示的整数的范围是位的计算机所能表示的整数的范围是-3276832768到到3276732767,字长为,字长为3232位的计算机所能表示位的计算机所能表示的整数的范围是的整数的范围是-2-23131到到2 23131-1-1。从另一个角度看,。从另一个角度看,为了能表示两个大小相差很大的数据,需要有为了能表示两个大小相差很大的数据,需要有很长的机器字长。很长的机器字长。(3 3)数据存储单元的利用率往往很低。例)数据存储单元的利用率往往很低。例如,为了把小数点的位置确定在数据最高位之如,为了把小数点的位置确定在数据最高位之前,必须把所有参与运算的数据至少都除以这前,必须把所有参与运算的数据至少都除以这些数据中的最大数,只有这样才能把所有数据些数据中的最大数,只有这样才能把所有数据都化成纯小数,因此造成很多数据有大量的前都化成纯小数,因此造成很多数据有大量的前置零,从而浪费了许多数据存储单元。置零,从而浪费了许多数据存储单元。10Computer System Organization and Architecture返回目录 与与定定点点数数相相反反,浮浮点点数数是是指指小小数数点点位位置置不不固固定定的的数据。通常用以下形式表示数据。通常用以下形式表示:N=M RN=M RE E 其其中中,M M(mantissamantissa)被被称称为为浮浮点点数数的的尾尾数数,R R(radixradix)被被称称为为阶阶码码的的基基数数,E E(exponentexponent)被被称称为为浮浮点点数数的的阶阶码码。计计算算机机中中一一般般规规定定 R R 为为 2 2、8 8 或或 1616,是是一一个个确确定定的的常常数数,不不需需要要在在浮浮点点数数中中明明确确表表示示出出来来。因因此此,要要表表示示浮浮点点数数,一一是是要要给给出出尾尾数数 M M 的的值值,通通常常用用定定点点小小数数形形式式表表示示,它它决决定定了了浮浮点点数数的的数数据据精精度度,即即可可以以给给出出的的有有效效数数字字的的位位数数。二二是是要要给给出出阶阶码码,通通常常用用整整数数形形式式表表示示,它它指指出出的的是是小小数数点点在在数数据据中中的的位位置置,决决定定了了浮浮点点数数的的表表示示范范围围。浮点数也要有符号位。浮点数也要有符号位。11Computer System Organization and Architecture返回目录在计算机中,浮点数通常被表示成如下格式:在计算机中,浮点数通常被表示成如下格式:M MS S是是尾尾数数的的符符号号位位,即即浮浮点点数数的的符符号号位位,安安排排在在最高一位;最高一位;E E是是阶阶码码,紧紧跟跟在在符符号号位位之之后后,占占用用m m位位,其其中中包包含一位阶码的符号位;含一位阶码的符号位;M M是尾数,在低位部分,占用是尾数,在低位部分,占用n n位。位。12Computer System Organization and Architecture返回目录 按国际电子电气工程师协会按国际电子电气工程师协会IEEE754IEEE754标准,标准,规定常用的浮点数的格式为规定常用的浮点数的格式为 符号 符符号号位位 阶阶码码 尾尾数数 总总位数位数 单精度浮点数单精度浮点数 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,但到了,但到了计算机内部,出于存储与计算方便的目的,必计算机内部,出于存储与计算方便的目的,必须采用二进制码对每个十进制数位进行编码,须采用二进制码对每个十进制数位进行编码,所需要的最少的二进制码的位数为所需要的最少的二进制码的位数为 log log 2 21010,取取整数为整数为 4 4。4 4 位二进制码有位二进制码有 16 16 种不同的组合,种不同的组合,怎样从中选择出怎样从中选择出 10 10 个组合来表示十进制数位个组合来表示十进制数位的的 0 0 9 9,有非常多的可行方案,下面介绍其,有非常多的可行方案,下面介绍其中最常用的几种。中最常用的几种。14Computer System Organization and Architecture返回目录(1 1)有权码)有权码 权是指表示一个十进制数位的权是指表示一个十进制数位的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位二进位二进制码之间满足二进制的进位规则,而十进制数位之制码之间满足二进制的进位规则,而十进制数位之间则是十进制规则,因此这种编码被称为以二进制间则是十进制规则,因此这种编码被称为以二进制编码的十进制(编码的十进制(binary coded decimalbinary coded decimal)数,简称数,简称BCDBCD码。另一个优点是在数字符的码。另一个优点是在数字符的 ASCIIASCII码与这种码与这种编码之间的转换方便,即取每个数字符的编码之间的转换方便,即取每个数字符的 ASCIIASCII码码的低的低4 4位的值便直接得到该数字的位的值便直接得到该数字的BCDBCD码,输入输出码,输入输出操作非常简便。操作非常简便。15Computer System Organization and Architecture返回目录 在在计计算算机机内内实实现现 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 的运算结果是正确的,不必修正。的运算结果是正确的,不必修正。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的结果也必须用加的结果也必须用加 6 6 修正,进位是在相加修正,进位是在相加过程中产生的。过程中产生的。17Computer System Organization and Architecture返回目录 另外几种有权码,如另外几种有权码,如 24212421、52115211、4311 4311 码(如表码(如表 2.1 2.1 所示),也都是用所示),也都是用 4 4 位有权二位有权二进制码表示一个十进制数位,但这进制码表示一个十进制数位,但这 4 4 位二进制位二进制码之间并不符合二进制规则。这几种有权码的码之间并不符合二进制规则。这几种有权码的特性表现如下所述。当采用特性表现如下所述。当采用 24212421、5211 5211 和和 4311 4311 编码时,任何两个十进制数位相加产生编码时,任何两个十进制数位相加产生 10 10 或大于或大于 10 10 的结果,相应的二进制码相加会的结果,相应的二进制码相加会向高一位产生进位,有利于实现逢十进位的记向高一位产生进位,有利于实现逢十进位的记数和加法规则。任何两个相加之和等于数和加法规则。任何两个相加之和等于 9 9 的十的十进制数的二进制码,互为反码,即满足十进制进制数的二进制码,互为反码,即满足十进制数按数按 9 9 互补的关系,有利于简化减法处理。互补的关系,有利于简化减法处理。18Computer System Organization and Architecture返回目录表表2.1 42.1 4位有权码位有权码 19Computer System Organization and Architecture返回目录(2 2)无权码)无权码 无无权权是是指指表表示示一一位位十十进进制制数数的的4 4位位二二进进制制码码的的每每一一位位没没有有确确定定的的位位权权。在在采采用用的的无无权权码码的的一一些些方方案案中中,早早期期用用的的比比较较多多的的是是余余3 3码码(Excess-3 Excess-3 CodeCode),它它是是把把原原二二进进制制的的每每个个代代码码都都加加00110011值值得得到到的的,其其主主要要优优点点是是执执行行十十进进制制数数相相加加时时,能能正正确确地地产产生生进进位位信信号号,而而且且还还给给减减法法运运算算带带来来了了方方便便。采采用用余余3 3码码执行加法运算的规则是:执行加法运算的规则是:当当两两个个余余3 3码码相相加加不不产产生生进进位位时时,应应从从所所得得结结果果中中减去减去 00110011;产生进位时,一方面应将进位信号送入高位余产生进位时,一方面应将进位信号送入高位余3 3码,本位还应执行加码,本位还应执行加00110011的修正操作,高位应执行的修正操作,高位应执行减减00110011的修正操作。的修正操作。20Computer System Organization and Architecture返回目录例例2.42.4 (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+1000 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 个二进制位必须有相同个二进制位必须有相同状态,因此格雷码有多种编码方法。这种编码方状态,因此格雷码有多种编码方法。这种编码方法的好处是,从一个编码变到下一个相邻编码时,法的好处是,从一个编码变到下一个相邻编码时,只有一位的状态发生变化,有利于得到更好的译只有一位的状态发生变化,有利于得到更好的译码波形,在模拟码波形,在模拟数字与数字数字与数字模拟转换的电路模拟转换的电路中得到更好的运行结果。格雷码又被称为循环码。中得到更好的运行结果。格雷码又被称为循环码。用用 4 4 个二进制位的格雷码表示个二进制位的格雷码表示 1 1 位十进制数的位十进制数的 10 10 个状态的方案很多。表个状态的方案很多。表 2.22.2给出余给出余3 3码和一种码和一种格雷码编码值。格雷码编码值。23Computer System Organization and Architecture返回目录表表2.2 42.2 4位无权码位无权码 24Computer System Organization and Architecture返回目录(3 3)数字串在计算机内的表示与存储)数字串在计算机内的表示与存储 人们习惯使用十进制数,而在计算机内,采用人们习惯使用十进制数,而在计算机内,采用二进制表示和处理数据更方便。因此,在计算机输二进制表示和处理数据更方便。因此,在计算机输入和输出数据时,要进行十进制到二进制和二进制入和输出数据时,要进行十进制到二进制和二进制到十进制的进制转换处理,这是多数应用环境中的到十进制的进制转换处理,这是多数应用环境中的实际情况。而在某些特定的应用领域中,如商业统实际情况。而在某些特定的应用领域中,如商业统计,其特点是运算简单而数据量很大,这样使输入计,其特点是运算简单而数据量很大,这样使输入输出过程中的进制转换所占的时间比例很大。从提输出过程中的进制转换所占的时间比例很大。从提高机器的运行效率考虑,也可以采用在计算机内部高机器的运行效率考虑,也可以采用在计算机内部直接用十进制方式表示和处理数据,这要求计算机直接用十进制方式表示和处理数据,这要求计算机内部增加少量硬件线路。目前,大多数通用性较强内部增加少量硬件线路。目前,大多数通用性较强的计算机,都能直接处理十进制形式表示的数值。的计算机,都能直接处理十进制形式表示的数值。采用十进制表示数据的另一个目的,是提高数据的采用十进制表示数据的另一个目的,是提高数据的表示范围和运算精度。表示范围和运算精度。25Computer System Organization and Architecture返回目录 十进制数串在计算机内主要有两种表示形式。十进制数串在计算机内主要有两种表示形式。字符串形式。字符串形式。一一个个字字节节存存放放一一个个十十进进制制的的数数位位或或符符号号位位,存存放放的的是是ASCIIASCII码值。码值。例例,+132+132的的编编码码为为十十六六进进制制的的2 2B B 31 31 33 33 3232,在在主主存中占存中占4 4个字节。个字节。在主存中,这样的一个十进制数占用连续的多个在主存中,这样的一个十进制数占用连续的多个字节,故为了指明这样一个数,需要给出该数在主存字节,故为了指明这样一个数,需要给出该数在主存中的起始地址和位数(串的长度)。对用这种方式表中的起始地址和位数(串的长度)。对用这种方式表示的数据进行算术运算是很不方便的示的数据进行算术运算是很不方便的,用这种方式表用这种方式表示的十进制字符串,主要用在非数值计算的有关应用示的十进制字符串,主要用在非数值计算的有关应用领域中。领域中。26Computer System Organization and Architecture返回目录压缩的十进制数串形式。压缩的十进制数串形式。一个字节存放两个十进制的数位,它比前一种一个字节存放两个十进制的数位,它比前一种形式节省存储空间,又便于直接完成十进制数的算形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。用压缩的术运算,是广泛采用的较为理想的方法。用压缩的十进制数串表示一个数,要占用主存连续的多个字十进制数串表示一个数,要占用主存连续的多个字节,每个数位占用半个字节(即节,每个数位占用半个字节(即 4 4 个二进制位),个二进制位),其值可用二其值可用二-十进制编码(十进制编码(BCD BCD 码,数字符的码,数字符的 ASCIIASCII码的低码的低 4 4 位)表示,符号位也占用半个字节并存放位)表示,符号位也占用半个字节并存放在最低数字位之后,其值选用在最低数字位之后,其值选用 4 4 位编码的位编码的 6 6 种冗种冗余状态中的有关值,如用余状态中的有关值,如用 1100 1100 表示正号,用表示正号,用 1101 1101 表示负号。在这种表示中,规定十进制数值的位数表示负号。在这种表示中,规定十进制数值的位数加符号位之和必须为偶数,当其和不为偶数时,应加符号位之和必须为偶数,当其和不为偶数时,应在最高数字位之前补一个在最高数字位之前补一个 0 0,此时,表示一个数要,此时,表示一个数要占用该偶数值位的一半那么多个字节。占用该偶数值位的一半那么多个字节。27Computer System Organization and Architecture返回目录 例如:例如:+132+132 被表示成被表示成 13 213 2C C,-12-12被表示被表示成成 01 201 2D D,各占两个字节。要指明一个压缩的各占两个字节。要指明一个压缩的十进制数串,也需要给出它在主存中的首地址十进制数串,也需要给出它在主存中的首地址和它的数字位个数(不含符号位),又称位长,和它的数字位个数(不含符号位),又称位长,位长为位长为 0 0 的数其值为的数其值为 0 0。压缩的十进制数串表。压缩的十进制数串表示方法的优点是位长可变,许多机器中规定该示方法的优点是位长可变,许多机器中规定该长度从长度从 0 0 到到 3131,有的可能更长。,有的可能更长。28Computer System Organization and Architecture返回目录2.1.22.1.2 字符数据的表示方法字符数据的表示方法 字符数据是指字符、字符串、图形符号和字符数据是指字符、字符串、图形符号和汉字等各种数据。字符是计算机中使用最多的汉字等各种数据。字符是计算机中使用最多的信息形式之一,是人与计算机通信、交互作用信息形式之一,是人与计算机通信、交互作用的重要媒介。字符数据一般不用来表示数值的的重要媒介。字符数据一般不用来表示数值的大小,因此又被称为非数值数据。在计算机中,大小,因此又被称为非数值数据。在计算机中,要为每个字符指定一个确定的编码,作为识别要为每个字符指定一个确定的编码,作为识别和使用这些字符的依据。这些编码的值,是用和使用这些字符的依据。这些编码的值,是用一定位数的二进制码的两个基本符号一定位数的二进制码的两个基本符号“1 1”和和“0 0”进行编码给出的。进行编码给出的。29Computer System Organization and Architecture返回目录1.1.ASCIIASCII码和码和EBCDICEBCDIC码码 在计算机中使用得最多的、最普遍的是在计算机中使用得最多的、最普遍的是ASCIIASCII(American national Standard Code American national Standard Code for Information Interchangefor Information Interchange,用于信息交换用于信息交换的美国标准代码)字符编码,如表的美国标准代码)字符编码,如表2.32.3所示。所示。30Computer System Organization and Architecture返回目录表表2.3 2.3 ASCIIASCII编码表编码表 31Computer System Organization and Architecture返回目录 从从表表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,azaz)、)、3434个专用符号和个专用符号和3232个控制符个控制符号。其中编码值号。其中编码值031031不对应任何可印刷(或称有字不对应任何可印刷(或称有字形)字符,通常称它们为控制字符,用于通信中的形)字符,通常称它们为控制字符,用于通信中的通信控制或对计算机设备的功能控制。编码值为通信控制或对计算机设备的功能控制。编码值为 32 32 的是空格(或间隔)字符的是空格(或间隔)字符SPSP。编码值为编码值为127127的是的是删除控制删除控制DELDEL码。其余的码。其余的9494个字符称为可印刷字符,个字符称为可印刷字符,有人把空格也计入可印刷字符时,则称有有人把空格也计入可印刷字符时,则称有9595个可印个可印刷字符。刷字符。32Computer System Organization and Architecture返回目录 用用7 7位位二二进进制制表表示示一一个个字字符符的的ASCIIASCII码码简简称称为为ASCII-7ASCII-7码码,一一个个字字符符在在计计算算机机内内实实际际上上用用 8 8 位位表表示示。正正常常情情况况下下,最最高高一一位位 b b7 7为为“0 0”。在在需需要要奇奇偶偶校校验验时时,这这一一位位可可用用于于存存放放奇奇偶偶校校验位的值,此时称这一位为校验位。验位的值,此时称这一位为校验位。ASCII-7ASCII-7码中有如下两个编码规律:码中有如下两个编码规律:字符字符0909这这1010个数字符的高个数字符的高3 3位编码为位编码为011011,低,低4 4位为位为0000100100001001。当去掉高。当去掉高3 3位的值时,位的值时,低低4 4位正好是二进制形式的位正好是二进制形式的0909。这既满足正常。这既满足正常的排序关系,又有利于完成的排序关系,又有利于完成ASCIIASCII码与二进制码码与二进制码之间的转换。之间的转换。33Computer System Organization and Architecture返回目录 英英文文字字母母的的编编码码值值满满足足正正常常的的字字母母排排序序关关系系,且且大大、小小写写英英文文字字母母编编码码的的对对应应关关系系相相当当简简便便,差差别别仅仅表表现现在在b b5 5一一位位的的值值为为0 0或或1 1,有有利利于于大大、小小写写字字母之间的编码变换。母之间的编码变换。另有一种字符编码,是主要用在另有一种字符编码,是主要用在 IBM IBM 计算机计算机中的中的 EBCDICEBCDIC(Extended Binary Coded Decimal Extended Binary Coded Decimal Interchange CodeInterchange Code)编码。它采用编码。它采用 8 8 位编码,有位编码,有 256 256 个编码状态,但只选用其中一部分。个编码状态,但只选用其中一部分。0 0 9 9 这这 10 10 个数字字符的高个数字字符的高 4 4 位编码为位编码为 11111111,低,低 4 4 位仍为位仍为 0000 0000 10011001。大小写英文字母的编码同。大小写英文字母的编码同样满足正常的排序要求,而且有简单的对应关系,样满足正常的排序要求,而且有简单的对应关系,即同一个字母的大小写的编码值只有最高的第二位即同一个字母的大小写的编码值只有最高的第二位的值不同,易于识别与转换。的值不同,易于识别与转换。34Computer System Organization and Architecture返回目录字符串字符串 随随着着计计算算机机在在文文字字处处理理与与信信息息管管理理中中的的广广泛泛应应用,字符串已成为最常用的数据类型之一。用,字符串已成为最常用的数据类型之一。字符串是指连续的一串字符,通常方式下,字符串是指连续的一串字符,通常方式下,它们在主存中占用连续的多个字节空间,每个字它们在主存中占用连续的多个字节空间,每个字节存一个字符代码。当主存字由节存一个字符代码。当主存字由 2 2 个或个或 4 4 个字个字节组成时,在同一个主存字中,既有按从低位字节组成时,在同一个主存字中,既有按从低位字节到高位字节的顺序存放字符串内容的,也有按节到高位字节的顺序存放字符串内容的,也有按从高位字节到低位字节的顺序存放字符串内容的。从高位字节到低位字节的顺序存放字符串内容的。这两种存放方式都是常用方式,不同的计算机可这两种存放方式都是常用方式,不同的计算机可以选用其中任何一种。例如,字符串以选用其中任何一种。例如,字符串 IF A B IF A B THEN READTHEN READ(C C)()(最后一个字符是空格)就可以最后一个字符是空格)就可以有两种不同的存放方式如图有两种不同的存放方式如图2.1 2.1 所示。所示。35Computer System Organization and Architecture返回目录36Computer System Organization and Architecture返回目录中文的编码表示中文的编码表示 汉汉字字处处理理技技术术是是我我国国计计算算机机推推广广工工作作中中必必须须要要解解决决的的问问题题,与与西西文文字字符符比比较较,汉汉字字数数量量大大,字字形形复复杂杂,同同音音字字多多,这这就就给给汉汉字字在在计计算算机机内内部部的的存存储储、传传输输、交交换换、输输入入和和输输出出等等带带来来了了一一系系列列的的问问题题。为为了了能能直直接接使使用用西西文文标标准准键键盘盘输输入入汉汉字字,必必须须为为汉汉字字设设计计相相应应的的编编码码,以以适适应计算机处理汉字的需要。应计算机处理汉字的需要。下面介绍三种汉字编码方法。下面介绍三种汉字编码方法。37Computer System Organization and Architecture返回目录(1 1)国标码)国标码 19801980年我国颁布了年我国颁布了信息交换用汉字编码信息交换用汉字编码字符集基本集字符集基本集代号为代号为(GB2312GB231280)80),是国家是国家规定的用于汉字信息处理使用的代码依据,这规定的用于汉字信息处理使用的代码依据,这种编码称为国标码。在国标码的字符集中共收种编码称为国标码。在国标码的字符集中共收录了录了67636763个常用汉字和个常用汉字和682682个图形符号,其中一个图形符号,其中一级汉字级汉字37553755个,以汉语拼音为序排列,二级汉个,以汉语拼音为序排列,二级汉字字30083008个,以偏旁部首进行排列。个,以偏旁部首进行排列。38Computer System Organization and Architecture返回目录(2 2)机内码机内码 汉汉字字的的机机内内码码是是计计算算机机系系统统内内部部对对汉汉字字进进行行存存储储、处处理理和和传传输输统统一一使使用用的的代代码码,又又称称为为汉汉字字内内码码。机机内内码码是是根根据据GB2312-80GB2312-80进进行行编编码码的的。在在计计算算机机中中,通通常常用用两两个个字字节节表表示示一一个个汉汉字字。由由于于汉汉字字数数量量多多,一一般般用用2 2个个字字节节来来存存放放汉汉字字的的内内码码,其其中中一一个个字字节节用用于于表表示示汉汉字字的的区区号号,另另一一字字节节用用于于表表示示汉汉字字的的位位号号,但但是是这这种种简简单单的的表表示示方方法法不不能能区区分分汉汉字字字字符符与与英英文文字字符符。为为了了在在计计算算机机内内区区分分汉汉字字字字符符和和英英文文字字符符,以以免免