计算机组成原理电子教案第2章.ppt

上传人:wuy****n92 文档编号:73976260 上传时间:2023-02-23 格式:PPT 页数:59 大小:353KB
返回 下载 相关 举报
计算机组成原理电子教案第2章.ppt_第1页
第1页 / 共59页
计算机组成原理电子教案第2章.ppt_第2页
第2页 / 共59页
点击查看更多>>
资源描述

《计算机组成原理电子教案第2章.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理电子教案第2章.ppt(59页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第二章第二章 计算机的数据表示计算机的数据表示 计算机组成原理电子教案 陆 遥2.1 字符数据的表示字符数据的表示2.2 逻辑数据的表示逻辑数据的表示2.3 校验码校验码 码距与校验位的概念码距与校验位的概念 奇偶奇偶校验码校验码 2.3.3 海明校验码海明校验码 循环冗余校验码循环冗余校验码2.4 数值数据的表示数值数据的表示 2.4.1 数的二进制真值表示数的二进制真值表示 2.4.2 用用BCD码表示十进制数码表示十进制数 定点数的表示定点数的表示 2.4.4 浮点数的表示浮点数的表示2.1 字符数据的表示字符数据的表示n字符字符在计算机中的二进制编码称为在计算机中的二进制编码称为字符代

2、码字符代码。目。目前,计算机中普遍使用的字符代码是长度为前,计算机中普遍使用的字符代码是长度为7位的位的ASCII码码(美国信息交换标准代码)。(美国信息交换标准代码)。nASCII码在存储器中存放时,需要占用存储器的码在存储器中存放时,需要占用存储器的一个字节(一个字节(8位),其中的最高位(位),其中的最高位(b7)置为)置为0或或用作奇偶校验位。用作奇偶校验位。n字符串字符串被看作是一种数据结构,它是若干字符组被看作是一种数据结构,它是若干字符组成的一个序列,属于线性结构。字符串在计算机成的一个序列,属于线性结构。字符串在计算机中的存储一般采用顺序存储结构,串中每个字符中的存储一般采用顺

3、序存储结构,串中每个字符都用都用ASCII码表示,占用一个字节码表示,占用一个字节。设字符串设字符串“Very good!”存储在从主存地址存储在从主存地址i开始的开始的连续字节中,则其存储结果为连续字节中,则其存储结果为2.2 逻辑数据的表示逻辑数据的表示n逻辑数据逻辑数据用于描述某种关系是否成立、某种条件用于描述某种关系是否成立、某种条件是否满足、某种状态是否出现、某种控制是否有是否满足、某种状态是否出现、某种控制是否有效等。效等。n逻辑数据所描述的结果总是只有两种可能:成立逻辑数据所描述的结果总是只有两种可能:成立或不成立,满足或不满足,出现或未出现、有效或不成立,满足或不满足,出现或未

4、出现、有效或无效等。或无效等。n逻辑数据的两种值被分别称为逻辑数据的两种值被分别称为“真真”和和“假假”。“真真”代表关系成立、条件满足、状态出现、控代表关系成立、条件满足、状态出现、控制有效等,制有效等,“假假”则反之。计算机中只需用一位则反之。计算机中只需用一位二进制数字的二进制数字的0和和1两种状态,就能满足逻辑数据两种状态,就能满足逻辑数据表示的需要:表示的需要:1表示表示“真真”,0表示表示“假假”。2.3 校验码校验码n数据校验码数据校验码是一类能够发现甚至自动纠正某些数是一类能够发现甚至自动纠正某些数据错误的数据编码方法。据错误的数据编码方法。n通常,将正确的数据编码称为通常,将

5、正确的数据编码称为合法编码合法编码,而将错,而将错误的数据编码称为误的数据编码称为非法编码非法编码。n校验码的设计原则校验码的设计原则:当一个合法编码中的数据位:当一个合法编码中的数据位发生错误时,就变为一个非法编码,而不是变为发生错误时,就变为一个非法编码,而不是变为另一个合法编码。这样,只要检测到非法编码,另一个合法编码。这样,只要检测到非法编码,就能发现数据错误。就能发现数据错误。码距与校验位的概念n一个一个二进制编码系统二进制编码系统中,当两个不同的合法编码中,当两个不同的合法编码进行对应位的比较时,会有一些位上的取值不同,进行对应位的比较时,会有一些位上的取值不同,这些取值不同的位的

6、位数称为这两个编码的这些取值不同的位的位数称为这两个编码的码距码距,也称也称海明距离海明距离。n一个编码系统中任意两个合法编码的码距的最小一个编码系统中任意两个合法编码的码距的最小值,称为这个编码系统的值,称为这个编码系统的最小码距最小码距。n一个编码系统不仅要编出全部合法编码,还应能一个编码系统不仅要编出全部合法编码,还应能编出一定数量的非法编码。这样,在合法编码出编出一定数量的非法编码。这样,在合法编码出错时,才有可能变成非法编码而被检出。错时,才有可能变成非法编码而被检出。n编码系统中包含的非法编码称为编码系统中包含的非法编码称为冗余码冗余码。为了形成冗余码,需要在编码中增加为了形成冗余

7、码,需要在编码中增加冗余冗余位位(校验位校验位)。)。一个一个n位的编码系统,如果不设校验位,则位的编码系统,如果不设校验位,则无冗余码,全部无冗余码,全部2n个编码均为合法编码,最个编码均为合法编码,最小码距必然为小码距必然为1,编码系统无检错能力。,编码系统无检错能力。借助于校验位,可以使编码系统的最小码借助于校验位,可以使编码系统的最小码距大于距大于1,而与某个合法编码的码距小于最,而与某个合法编码的码距小于最小码距的编码一定是非法编码。小码距的编码一定是非法编码。奇偶校验码n奇偶校验码奇偶校验码是在基本编码之上增加一个校验位是在基本编码之上增加一个校验位奇偶校验位奇偶校验位而形成的。奇

8、偶校验分为而形成的。奇偶校验分为奇校验奇校验和和偶校验偶校验两种实现方案。两种实现方案。奇校验是通过校验位的调节,使整个编码中包含奇校验是通过校验位的调节,使整个编码中包含的二进制的二进制1的位数为奇数。的位数为奇数。偶校验是通过校验位的调节,使整个编码中包含偶校验是通过校验位的调节,使整个编码中包含的二进制的二进制1的位数为偶数。的位数为偶数。5位偶校验码表(最高位为校验位)位偶校验码表(最高位为校验位)原始数据原始数据编码编码(4位)位)偶校偶校验编码验编码(5位)位)原始数据原始数据编码编码(4位)位)偶校偶校验编码验编码(5位)位)000000000100011000000110001

9、100101001001010010101001010001100011101111011010010100110001100010100101110111101011000110111011110011110111111101111增加一个校验位后,最小码距从增加一个校验位后,最小码距从1变为变为2。表中未列出的另表中未列出的另16种种5位编码就是本编码系位编码就是本编码系统的冗余码,也就是非法编码。任一非法统的冗余码,也就是非法编码。任一非法编码均与表中某个合法编码的码距为编码均与表中某个合法编码的码距为1,且,且合法编码出错的位数为奇数(合法编码出错的位数为奇数(1、3或或5)时,)时,

10、均会变成非法编码。均会变成非法编码。奇偶校验码能够发现奇数个编码位的错误,奇偶校验码能够发现奇数个编码位的错误,但无法确定出错位的位置,故不能实现自但无法确定出错位的位置,故不能实现自动纠错。动纠错。n设奇偶校验码为设奇偶校验码为PDn-1Dn-2D1D0,其中,其中,P为校验为校验位,位,Dn-1Dn-2D1D0为为n个数据编码位,按照奇偶个数据编码位,按照奇偶校验码的编码方法,校验位与数据编码位的逻辑校验码的编码方法,校验位与数据编码位的逻辑关系为:关系为:奇校验奇校验:偶校验偶校验:奇偶校验的奇偶校验的校验式校验式为:为:对偶校验,对偶校验,S=1时编码有错,时编码有错,S=0时编码无错

11、,对时编码无错,对奇校验则正好相反。奇校验则正好相反。2.3.3 海明校验码海明校验码n海明校验码海明校验码具有发现具有发现2位错误并纠正位错误并纠正1位错误的能位错误的能力,是一种广泛使用的校验码。力,是一种广泛使用的校验码。n海明校验码的设计原理海明校验码的设计原理:将几个校验位编入到数:将几个校验位编入到数据码的特定位置,全部数据位被分成几个奇偶校据码的特定位置,全部数据位被分成几个奇偶校验组,每个数据位被按一定的规则分配到其中几验组,每个数据位被按一定的规则分配到其中几个组中,各校验位分别作为各组的奇偶校验(一个组中,各校验位分别作为各组的奇偶校验(一般为偶校验)位。当某个数据位出错时

12、,将会导般为偶校验)位。当某个数据位出错时,将会导致含有该数据位的几个校验组的校验结果出错。致含有该数据位的几个校验组的校验结果出错。根据出错校验组的不同组合,就能确定是哪个数根据出错校验组的不同组合,就能确定是哪个数据位发生错误,进而自动纠正这个错误。据位发生错误,进而自动纠正这个错误。海明码数据位数海明码数据位数k与校验位数与校验位数r的对应关系表的对应关系表 k值值最小的最小的r值值14511122627575812045678设校验位的位数为设校验位的位数为r,数据位的位数为,数据位的位数为k,若要能够,若要能够发现发现2位错误并纠正位错误并纠正1位错误,则需满足位错误,则需满足n设设

13、m=k+r,则海明码是一个,则海明码是一个m位编码,设其一般位编码,设其一般表示形式为表示形式为HmHm-1H2H1,则此海明码的,则此海明码的编码规编码规则则是:是:各校验位各校验位Pi(i=1,2,r)被安排在编码的)被安排在编码的第第2i-1位的位置,编码中的其余位为数据位。如校位的位置,编码中的其余位为数据位。如校验位验位P3在海明码中位于第在海明码中位于第4(23-1)位,即编码中)位,即编码中的的H4。海明码的每个位被分配到几个奇偶校验组中,海明码的每个位被分配到几个奇偶校验组中,所以,所以,每个位均由几个校验位来校验每个位均由几个校验位来校验。各被校验。各被校验位与相关的校验位之

14、间的关系是:位与相关的校验位之间的关系是:被校验位的位被校验位的位号是相关各校验位的位号之和号是相关各校验位的位号之和(这里的位号是指这里的位号是指其在海明码中的位号)其在海明码中的位号)。n例如,当例如,当k=4时,有时,有r=4,则海明码总位数为,则海明码总位数为8,可表示为可表示为H8H7H6H5H4H3H2H1。按编码规则,。按编码规则,4个个校验位校验位P1、P2、P3、P4被分别安排在被分别安排在H1、H2、H4和和H8。如以。如以Di和和Pi(i=1,2,3,4)分别表示数)分别表示数据位和校验位,则海明码的编码结果为据位和校验位,则海明码的编码结果为P4D4D3D2P3D1P2

15、P1 其中的各个编码位与相关的校验位之间的关系如其中的各个编码位与相关的校验位之间的关系如下表所示:下表所示:海明码的编码位与相关校验位之间的关系海明码的编码位与相关校验位之间的关系海明海明码码位号位号数据位数据位/校校验验位位相关的校相关的校验验位位号位位号H1P11 (1=1)H2P22 (2=2)H3D11,2 (3=1+2)H4P34 (4=4)H5D21,4 (5=1+4)H6D32,4 (6=2+4)H7D41,2,4(7=1+2+4)H8P48 (8=8)可见,可见,P1要对数据位要对数据位D1、D2、D4进行校验,进行校验,P2要对要对数据位数据位D1、D3、D4进行校验,进行

16、校验,P3要对数据位要对数据位D2、D3、D4进行校验。进行校验。如选择偶校验,有如选择偶校验,有 对应的三个校验式为对应的三个校验式为编码位出错与校验式结果之间的关系编码位出错与校验式结果之间的关系 当不同的编码位(包括数据位和校验位)发生错当不同的编码位(包括数据位和校验位)发生错误时,误时,3个校验式的值组成的二进制序列个校验式的值组成的二进制序列S3S2S1就就会不同。会不同。出出错错的的编码编码位位校校验验式式结结果果S3S2S1海明海明码码位号位号P1001(1)H1P2010(2)H2D1011(3)H3P3100(4)H4D2101(5)H5D3110(6)H6D4111(7)

17、H7无出无出错错位位000(0)无无n按按S3S2S1确认出错的编码位后,只需将该编码位确认出错的编码位后,只需将该编码位取取反反,即可纠正之。纠错时,需要针对,即可纠正之。纠错时,需要针对S3S2S1的每种的每种取值(除取值(除000外)设计相应的纠错电路,来纠正对外)设计相应的纠错电路,来纠正对应的出错编码位,硬件代价较大。应的出错编码位,硬件代价较大。n海明码还能检出海明码还能检出2位错误。因为任意两个编码位出位错误。因为任意两个编码位出错,都将使错,都将使S3S2S1000。但仅凭。但仅凭S3S2S1000,无法,无法区分是区分是2位错误还是位错误还是1位错误。为此,需要增加一位错误。

18、为此,需要增加一个个总校验位总校验位P4,使得,使得 并增设一个奇偶校验式并增设一个奇偶校验式 S4=1,发生,发生1位错误;位错误;S4=0,发生,发生2位错误。位错误。循环冗余校验码n循环冗余校验(循环冗余校验(CRC)码)码因其纠错能力强,且在因其纠错能力强,且在信息量较大的情况下,编码与解码所需的硬件代信息量较大的情况下,编码与解码所需的硬件代价小等优点,被广泛用于串行传送过程中的检错价小等优点,被广泛用于串行传送过程中的检错与纠错。与纠错。nCRC码也称为(码也称为(n,k)码,它是)码,它是在在k位信息位之位信息位之后拼接后拼接r位校验位位校验位而形成的而形成的n位编码(位编码(n

19、=k+r)。)。1模模2四则运算四则运算nCRC码的编码及校验过程均需要用到模码的编码及校验过程均需要用到模2四则运算。四则运算。模模2运算是按位运算,位与位之间不产生进位或借运算是按位运算,位与位之间不产生进位或借位。位。模模2加加/减运算:模减运算:模2加与模加与模2减是两种等效的运减是两种等效的运 算,均等同于逻辑异或运算,即算,均等同于逻辑异或运算,即 模模2乘运算:在对部分积求和时按模乘运算:在对部分积求和时按模2加进行。加进行。例如例如 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 0 模模2除运算:上商时,

20、如果上一次部分余数的最除运算:上商时,如果上一次部分余数的最高位为高位为1,则本次上商为,则本次上商为1,否则上商为,否则上商为0;求部分;求部分余数时,按模余数时,按模2减进行;将每次求得的部分余数的减进行;将每次求得的部分余数的最高位(总是最高位(总是0)去掉,使部分余数每次减少一位,)去掉,使部分余数每次减少一位,当部分余数的位数少于除数位数时,即为最终的当部分余数的位数少于除数位数时,即为最终的余数。例如余数。例如 1 0 1 商商 1 0 1 1 0 0 1 0 被除数也是最初的部分余数被除数也是最初的部分余数 1 0 1 部分余数最高位为部分余数最高位为1,上商为,上商为1 0 0

21、 1 1 0 去掉部分余数最高位的去掉部分余数最高位的0,部分余数减少一位,部分余数减少一位 0 0 0 部分余数最高位为部分余数最高位为0,上商为,上商为0 0 1 1 0 去掉部分余数最高位的去掉部分余数最高位的0,部分余数减少一位,部分余数减少一位 1 0 1 部分余数最高位为部分余数最高位为1,上商为,上商为1 0 1 1 去掉部分余数最高位的去掉部分余数最高位的0,得最终余数,得最终余数11 2CRC码的编码方法码的编码方法n一个一个k位二进制信息码位二进制信息码 可以用一可以用一个多项式表示:个多项式表示:M(x)称为称为信息码多项式信息码多项式。n为了在信息位后拼接为了在信息位后

22、拼接r位校验位,需将位校验位,需将k位信息位位信息位向左移动向左移动r位,得多项式位,得多项式M(x)xr。nr位校验位可以表示为多项式位校验位可以表示为多项式R(x),它是以下多,它是以下多项式运算产生的余数(按模项式运算产生的余数(按模2运算)运算)上式中,上式中,G(x)被称为被称为生成多项式生成多项式,是一个,是一个r阶多阶多项式项式;Q(x)为商多项式;为商多项式;R(x)是是余数多项式余数多项式。n将将R(x)拼接在拼接在M(x)之后,即得到完整的之后,即得到完整的CRC码,码,其多项式表示形式为其多项式表示形式为M(x)xrR(x)(模(模2加)。加)。nCRC码码M(x)xrR

23、(x)可被其生成多项式可被其生成多项式G(x)整除(模整除(模2除),即余数为除),即余数为r位全位全0。因为。因为 M(x)xrR(x)=Q(x)G(x)R(x)R(x)=Q(x)G(x)R(x)R(x)=Q(x)G(x)(模(模2运算)运算)【例例2.1】按(按(7,4)CRC码的编码规则,求码的编码规则,求4位信息码位信息码1100的的CRC码,生成多项式选择码,生成多项式选择G(x)=x3x1。解:由(解:由(7,4)码可知)码可知r=74=3,即校验位有,即校验位有3位。根位。根据据4位信息码位信息码1100得得M(x)=x3x2;M(x)左移左移r位后得位后得 M(x)xr=(x3

24、x2)x3=x6x5=1100000 G(x)=x3x1=1011。下面按模下面按模2除求除求3位校验位位校验位 所以,所以,R(x)=010。由此可得。由此可得CRC码为码为 M(x)xrR(x)=1100000010=1100010 (模(模2加)加)3CRC码的检错与纠错码的检错与纠错nCRC码的检错原理码的检错原理:数据传送的接收方在接收到:数据传送的接收方在接收到CRC码后,使用与发送方约定的生成多项式去除码后,使用与发送方约定的生成多项式去除该该CRC码,如果余数为码,如果余数为r位全位全0,则收到的,则收到的CRC码码无错误,否则有错误。无错误,否则有错误。nCRC码的纠错原理码

25、的纠错原理:CRC码不同位上的错误将导码不同位上的错误将导致产生不同的余数致产生不同的余数R(x),可依据余数,可依据余数R(x)确定确定并纠正出错的编码位。并纠正出错的编码位。例例2.1的(的(7,4)CRC码出错位与余数码出错位与余数R(x)之间的对应关系之间的对应关系(生成多项式(生成多项式G(x)=1011)A7 A6 A5 A4 A3 A2 A1 余数余数R(x)出出错错位位正确的正确的编码编码 1 1 0 0 0 1 00 0 0无无发发生生1位位错错误误的的编码编码 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1

26、 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 00 0 10 1 01 0 00 1 11 1 01 1 11 0 11234567可以证明,只要可以证明,只要CRC码的码制(即(码的码制(即(n,k)码的)码的n、k取值)取值)和生成多项式和生成多项式G(x)不变,信息码不变,信息码M(x)的变化不改变出错位的变化不改变出错位与余数与余数R(x)的对应关系。即上表所列,为所有以的对应关系。即上表所列,为所有以G(x)=1011为生成多项式的(为生成多项式的(7,4)CRC码的码的出错模式出错模式。nCRC码还有一个码还有一个重要特点重要特点:在一个不为:在一个

27、不为0的余数的的余数的最低位补最低位补1个个0后再除以后再除以G(x)(模(模2除),所得的除),所得的余数就是出错模式表中的下一个余数;如此继续余数就是出错模式表中的下一个余数;如此继续下去,各次产生的下去,各次产生的余数将按出错模式表中的顺序余数将按出错模式表中的顺序循环变化循环变化。n对一个(对一个(n,k)码,在某位出错时,从对应的余)码,在某位出错时,从对应的余数开始,按上述方法产生余数的循环变化,同时数开始,按上述方法产生余数的循环变化,同时每次使整个每次使整个CRC码循环左移码循环左移1位,当余数变到对应位,当余数变到对应于于An出错的余数时,出错位也被移到出错的余数时,出错位也

28、被移到An的位置,的位置,此时此时将将An取反实现纠错取反实现纠错,然后继续做余数的循环,然后继续做余数的循环变化和变化和CRC码的循环左移,直到做满一个循环码的循环左移,直到做满一个循环(n次),就得到了一个纠正后的次),就得到了一个纠正后的CRC码。码。n利用利用CRC码来纠错,不必针对每个不为码来纠错,不必针对每个不为0的余数来的余数来设计对应编码位的纠错电路,能有效降低校验电设计对应编码位的纠错电路,能有效降低校验电路的硬件代价。路的硬件代价。4生成多项式简介生成多项式简介n生成多项式应能满足下列要求:生成多项式应能满足下列要求:CRC码的任何一位出错,均使余数不为码的任何一位出错,均

29、使余数不为0;CRC码的不同位出错时,余数也应不同;码的不同位出错时,余数也应不同;对不为对不为0的余数最低位补的余数最低位补0后继续作模后继续作模2除,应能除,应能 使余数循环。使余数循环。若要求余数为若要求余数为r位,则生成多项式应为位,则生成多项式应为r阶。阶。n生成多项式的求取方法:对一个(生成多项式的求取方法:对一个(n,k)码来说,)码来说,可将(可将(xn-1)按模)按模2 运算规则分解为若干质因子,运算规则分解为若干质因子,根据编码所要求的码距选取其中的因式或若干因根据编码所要求的码距选取其中的因式或若干因式的乘积作为生成多项式。式的乘积作为生成多项式。【例例2.2】设设n=7

30、,则按模,则按模2 运算规则,有运算规则,有 选择选择G(x)=x1=11,可构成(,可构成(7,6)码,只能判)码,只能判1位错。位错。选择选择G(x)=x3x1=1011或或G(x)=x3x21=1101,可构成(可构成(7,4)码,能判)码,能判2位错或纠位错或纠1位错。位错。选择选择G(x)=(x1)(x3x1)=11101,可构成(,可构成(7,3)码,)码,能判能判2位错并纠位错并纠1位错。位错。部分(部分(n,k)码的生成多项式)码的生成多项式G(x)nk码码距距dG(x)多多项项式式G(x)二二进进制制码码743G1(x)=(x3+x+1)或或(x3+x2+1)1011或或11

31、0134G2(x)=G1(x)(x+1)=(x3+x+1)(x+1)或或(x3+x2+1)(x+1)11101或或1011115113G1(x)=(x4+x+1)1001175G2(x)=(x4+x+1)(x4+x3+x2+x+1)11101000131263G1(x)=(x5+x2+1)100101215G2(x)=(x5+x2+1)(x5+x4+x3+x2+x+1)1110110100163573G1(x)=(x6+x+1)1000011515G2(x)=(x6+x+1)(x6+x4+x+1)101000011010110411025G(x)=(x16+x15+x2+1)110000000

32、000001012.4 数值数据的表示数值数据的表示 n数值数据数值数据是计算机中用于各种算术运算的是计算机中用于各种算术运算的数据。数据。n计算机中表示数值数据要解决计算机中表示数值数据要解决有效数字有效数字、小数点小数点及及符号符号的表示,还要便于数据的运的表示,还要便于数据的运算。算。2.4.1 数的二进制真值表示n所谓数的所谓数的“真值真值”表示表示,是相对于数在计算机中,是相对于数在计算机中的的编码表示编码表示而言的,也就是人们平时所习惯的数而言的,也就是人们平时所习惯的数的书面表示形式。的书面表示形式。如如+10000100 和和-1111011.01。n在计算机中,无论是在计算机

33、中,无论是“+”号、号、“-”号还是小数号还是小数点点“.”,都属于字符,需要用,都属于字符,需要用ASCII码来表示。码来表示。如果计算机中也采用真值表示数据的话,就会大如果计算机中也采用真值表示数据的话,就会大大增加信息的存储量,同时也会给运算带来很大大增加信息的存储量,同时也会给运算带来很大的麻烦。的麻烦。n计算机中的数值数据采用特殊的二进制编码形式计算机中的数值数据采用特殊的二进制编码形式表示,称为表示,称为机器数机器数。2.4.2 用BCD码表示十进制数nBCD(binary coded decimal)码)码的完整意义是的完整意义是“用二进制编码的十进制码用二进制编码的十进制码”,

34、它采用,它采用4位二进制编位二进制编码表示码表示1位十进制数。位十进制数。nBCD码分码分有权码有权码与与无权码无权码两类。有权码如两类。有权码如8421码、码、2421码等;无权码如余码等;无权码如余3码、格雷码等。码、格雷码等。n采用采用8421码可码可以进行十进制以进行十进制算术运算,但运算结算术运算,但运算结果果可能需要修正。可能需要修正。典型典型BCD码码 十十进进制数制数有有权码权码无无权码权码8421码码2421码码余余3码码格雷格雷码码000000000001100001000100010100000120010001001010011300110011011000104010

35、00100011101105010110111000111060110110010011010701111101101010008100011101011110091001111111000100 定点数的表示n计算机中实际用于数值计算的数据表示方法主要计算机中实际用于数值计算的数据表示方法主要有有定点数表示法定点数表示法和和浮点数表示法浮点数表示法两种;定点数表两种;定点数表示法也是浮点数表示法的基础。示法也是浮点数表示法的基础。n所谓所谓定点数表示定点数表示,是指小数点被固定在数据中某,是指小数点被固定在数据中某个特定位置上的数据表示方法。个特定位置上的数据表示方法。定点整数:定点整数:定

36、点小数:定点小数:其中,其中,xs是数的符号。是数的符号。n定点数中,小数点的位置可以看作是默认的,因定点数中,小数点的位置可以看作是默认的,因此,此,小数点不用表示出来小数点不用表示出来。n符号的表示是定点数表示必须要解决的问题。带符号的表示是定点数表示必须要解决的问题。带符号的定点数在计算机中有原码、补码、反码和符号的定点数在计算机中有原码、补码、反码和移码等四种编码表示方法。移码等四种编码表示方法。1.原码表示法原码表示法n原码原码以以0表示正号表示正号,以,以1表示负号表示负号,直接置于数的,直接置于数的最左端(即最高位位置);而数的数字部分与其最左端(即最高位位置);而数的数字部分与

37、其绝对值一致。绝对值一致。【例2.3】若若 x=+0.1011,则,则 x原原=0.1011;若若 x=-0.1011,则,则 x原原=1.1011;若若 x=+1011,则,则 x原原=01011;若若 x=-1011,则,则 x原原=11011。n设符号位用设符号位用xs表示,各数据位用表示,各数据位用xi(i=0,1,2,n1)表示,则原码的一般表示形式为)表示,则原码的一般表示形式为x原原=xs xn1 xn2 x1 x0n用原码表示时,用原码表示时,+0原原与与-0原原是不同的:是不同的:+0原原=00000-0原原=10000n原码比较适合于乘除运算原码比较适合于乘除运算。n原码不

38、适合于加减运算原码不适合于加减运算。2.补码表示法补码表示法n计算机中,因为用来存储数据的存储单元或寄存计算机中,因为用来存储数据的存储单元或寄存器有一定的位数限制,进行数据运算的运算器也器有一定的位数限制,进行数据运算的运算器也有一定的位数限制,所以,有一定的位数限制,所以,数据在计算机中表示数据在计算机中表示的位数也是受限制的的位数也是受限制的。当数据超过规定位数时,。当数据超过规定位数时,其处于高位的超出部分将被丢弃。其处于高位的超出部分将被丢弃。n以定点整数为例,设一个寄存器的位数为以定点整数为例,设一个寄存器的位数为n,则超,则超出该寄存器存储能力的最小正整数是出该寄存器存储能力的最

39、小正整数是2n,它在该,它在该寄存器中的存储结果与寄存器中的存储结果与0的存储结果是一样的。的存储结果是一样的。n一般地,设一般地,设x为正整数,且为正整数,且0 x2n,则,则x与与2n x在在n位寄存器中的存储结果是一样的,均为位寄存器中的存储结果是一样的,均为x。这。这种现象在数学中称为种现象在数学中称为“同余同余”,即,即x除以除以2n与与2n x除以除以2n的余数相同,用数学公式表示为的余数相同,用数学公式表示为x=2n x (mod 2n)n在同余的概念下,设在同余的概念下,设x0且且|x|2n,则同样有,则同样有x=2n x (mod 2n)式中,式中,x0而而2n x0。它说明

40、:在。它说明:在mod 2n的前的前提下,一个负数提下,一个负数x可以用一个正数可以用一个正数2n x来表示;来表示;也就是说,一个负数也就是说,一个负数x与一个正数与一个正数2n x在在n位寄存位寄存器中的存储结果是一样的。器中的存储结果是一样的。n在在mod 2n的前提下,设的前提下,设|x|2n,我们把,我们把x的同余数的同余数2n x称为称为x的的补码补码,即,即x补补=2n x (mod 2n)在一个在一个n位寄存器中存放补码时,要把最高位留作位寄存器中存放补码时,要把最高位留作符号位,数字部分为符号位,数字部分为n1位。故位。故x的实际取值范围的实际取值范围是是-2n1 x 2n1

41、-1n对定点小数,由于符号位占据了对定点小数,由于符号位占据了n位寄存器的最高位寄存器的最高位,相当于占据了位,相当于占据了20位,故模数应该是位,故模数应该是21。由此可。由此可得定点小数得定点小数x的补码为的补码为x补补=21 x (mod 21)x的实际取值范围是的实际取值范围是-1 x 1-2-(n 1)【例2.4】设寄存器位数为设寄存器位数为8位,可以存放一个位,可以存放一个8位位补码(补码(1位符号,位符号,7位数值)。设位数值)。设 x=+1001011,求求x补补。解:解:x补补=28+x (mod 28)=28+(+1001011)(mod 28)=01001011 (mod

42、 28)其中,最高位上的其中,最高位上的0被看作符号位。由本例可知:被看作符号位。由本例可知:一个正数的补码与其原码是一致的。一个正数的补码与其原码是一致的。【例2.5】设寄存器位数为设寄存器位数为8位,位,x=-1001011,求,求x补补。解:解:x补补=28+x (mod 28)=28+(-1001011)(mod 28)=10110101 (mod 28)其中,最高位上的其中,最高位上的1被看作符号位。由本例可知:被看作符号位。由本例可知:一个负数的补码,其符号位为一个负数的补码,其符号位为1。显然,负数的补。显然,负数的补码与其原码是不同的。码与其原码是不同的。【例2.6】设寄存器位

43、数为设寄存器位数为8位,位,x=+0.1001011,求求x补补。解:解:x补补=21+x (mod 21)=21+(+0.1001011)(mod 21)=0.1001011 (mod 21)最高位上的最高位上的0被看作符号位。被看作符号位。【例2.7】设寄存器位数为设寄存器位数为8位,位,x=-0.1001011,求求x补补。解:解:x补补=21+x (mod 21)=21+(-0.1001011)(mod 21)=1.0110101 (mod 21)最高位上的最高位上的1被看作符号位。被看作符号位。n与原码不同,补码的符号位(正为与原码不同,补码的符号位(正为0,负为,负为1)不是人为规

44、定的,而是在求补码的运算)不是人为规定的,而是在求补码的运算中求出的,实际上就是运算结果的最高有中求出的,实际上就是运算结果的最高有效数字位。因此,在效数字位。因此,在用补码进行加减运算用补码进行加减运算时,符号位可以象数字位一样参加运算时,符号位可以象数字位一样参加运算,给计算机的加减运算带来很大方便。给计算机的加减运算带来很大方便。3.反码表示法反码表示法n一个数的一个数的反码反码可通过其原码求得,方法是:正数可通过其原码求得,方法是:正数的反码与其原码一致;负数的反码与其原码符号的反码与其原码一致;负数的反码与其原码符号位相同,数字位按位取反。位相同,数字位按位取反。n反码一般不用于计算

45、,但可用来作为原码转换为反码一般不用于计算,但可用来作为原码转换为补码时的中间代码。原码转换为补码的方法是:补码时的中间代码。原码转换为补码的方法是:正数的原码、补码及反码均相同,无需转换;正数的原码、补码及反码均相同,无需转换;对负数,先从原码求其反码,再将反码加对负数,先从原码求其反码,再将反码加1,即,即 得其补码。得其补码。n补码到原码的转换也使用同样的方法。补码到原码的转换也使用同样的方法。【例2.8】设寄存器位数为设寄存器位数为8位,位,x=-1001011,则,则 x原原=11001011,x反反=10110100,x补补=x反反+1 =10110100+1 =10110101

46、【例2.9】在例在例2.8的基础上,将的基础上,将x补补 转换为转换为x原原 的过程如下:的过程如下:x补补=10110101符号位不变,数字位每位取反,符号位不变,数字位每位取反,得得11001010加加1,得,得11001011=x原原。4.移码表示法移码表示法n移码移码只用于表示带符号定点整数。设只用于表示带符号定点整数。设x是一个是一个n位位二进制整数,则其移码定义为二进制整数,则其移码定义为x移移=2n+x,2n x -2n x移移 是一个是一个n+1位的编码,最高位被看作符号。位的编码,最高位被看作符号。【例2.10】设设 x=+1001011,为,为7位数,则位数,则x移移=27

47、+x=27+(+1001011)=11001011 【例2.11】设设 x=-1001011,为,为7位数,则位数,则x移移=27+x=27+(-1001011)=00110101n移码正数的符号为移码正数的符号为1,而负数的符号为,而负数的符号为0。移码的移码的符号能够直接参与加减运算。移码之间的大小关符号能够直接参与加减运算。移码之间的大小关系可以直接反映数据真值之间的大小关系。系可以直接反映数据真值之间的大小关系。2.4.4 浮点数的表示n浮点数浮点数是指小数点位置未经人为约定的一般的数,是指小数点位置未经人为约定的一般的数,其小数点可以出现在数中任意位置。其小数点可以出现在数中任意位置

48、。n一个浮点数一个浮点数N可以表示成可以表示成N=Re mn浮点数的三个构成要素:浮点数的三个构成要素:指数指数e;基数基数R;有效数有效数字字m。n浮点数表示的基本思想浮点数表示的基本思想:将浮点数的三个要素分:将浮点数的三个要素分别表示出来。别表示出来。n在计算机中,指数是一个整数,可用定点整数表在计算机中,指数是一个整数,可用定点整数表示;基数默认为示;基数默认为2,不用表示出来;有效数字部分,不用表示出来;有效数字部分被规定为一个纯小数,可用定点小数表示。被规定为一个纯小数,可用定点小数表示。n指数的机器数编码称为指数的机器数编码称为“阶码阶码”,有效数字的机,有效数字的机器数编码称为

49、器数编码称为“尾数尾数”,尾数的符号就是浮点数,尾数的符号就是浮点数的符号。浮点数在计算机中的一般编码表示格式的符号。浮点数在计算机中的一般编码表示格式为:为:尾数尾数M一般用补码或原码表示;阶码一般用补码或原码表示;阶码E一般用移码一般用移码或补码表示;数符或补码表示;数符S是浮点数的符号,也就是尾数是浮点数的符号,也就是尾数的符号(故的符号(故M不含符号位)。不含符号位)。n浮点数的浮点数的表示范围表示范围取决于阶码的位数,而浮点数取决于阶码的位数,而浮点数的的表示精度表示精度则取决于尾数的位数。则取决于尾数的位数。n在浮点数表示中,除了要求尾数为纯小数外,还在浮点数表示中,除了要求尾数为

50、纯小数外,还进一步规定:当尾数的绝对值不为进一步规定:当尾数的绝对值不为0时,尾数绝对时,尾数绝对值(或真值)的最高有效数字必须为值(或真值)的最高有效数字必须为1;这称为浮;这称为浮点数的点数的规格化表示规格化表示。如:如:+110.0101的规格化表示形式是的规格化表示形式是230.1100101 而不能是而不能是240.01100101n浮点数的规格化表示浮点数的规格化表示既消除了浮点数表示的不确既消除了浮点数表示的不确定性,又可以尽量减少其精度损失。定性,又可以尽量减少其精度损失。n浮点数表示中的一些特殊情况:浮点数表示中的一些特殊情况:当尾数为当尾数为0时,浮点数的值为零,称为时,浮

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁