计算机组成原理 (2)_第1页
计算机组成原理 (2)_第2页
计算机组成原理 (2)_第3页
计算机组成原理 (2)_第4页
计算机组成原理 (2)_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第二章第二章 计算机中数据信息的表示计算机中数据信息的表示 数据是计算机处理的对象数据是计算机处理的对象。 本章讨论的是计算机内部各类数据的表示方法及其相互间的等值本章讨论的是计算机内部各类数据的表示方法及其相互间的等值转换。转换。 信息处理领域中信息处理领域中“数据数据”概念要大得多。世界上的一切事物和现概念要大得多。世界上的一切事物和现象都可以通过一组特征象都可以通过一组特征“数据数据”去描述它。去描述它。对于计算机而言,它所对于计算机而言,它所处理的就是事物和现象的处理的就是事物和现象的“特征描述数据特征描述数据”。 不管计算机要处理的对象是什么事物或现象,都必须通过某种方不管计算机要

2、处理的对象是什么事物或现象,都必须通过某种方式获取其式获取其“特征描述数据特征描述数据”,才能在计算机中进行处理。,才能在计算机中进行处理。 ISO对数据所下的定义是对数据所下的定义是:“数据是对数据是对事实、概念或指令事实、概念或指令的一种的一种特殊表达形式,这种特殊表达形式,这种特殊的表达形式特殊的表达形式可以用人工的方式或者用自动可以用人工的方式或者用自动化的装置进行通信、翻译转换或者进行加工处理化的装置进行通信、翻译转换或者进行加工处理” 。 根据这个定义,通常意义下的数值、文字、图画、声音、活动图根据这个定义,通常意义下的数值、文字、图画、声音、活动图象等对于人来说都可以认为是数据。

3、象等对于人来说都可以认为是数据。 通常把计算机内部由硬件实现的基本数据分为数值型数据和非数通常把计算机内部由硬件实现的基本数据分为数值型数据和非数值型数据。值型数据。 2 数值型数据数值型数据:可用来表示数量的多少,可比较其大小,具有特定:可用来表示数量的多少,可比较其大小,具有特定值的一类数据。值的一类数据。 非数值型数据非数值型数据:主要指字符数据、逻辑数据等。在一些:主要指字符数据、逻辑数据等。在一些 专用处理专用处理器上指令集可对多媒体信息进行处理,此时图形、声音和活动图象器上指令集可对多媒体信息进行处理,此时图形、声音和活动图象数据看成非数值型数据。数据看成非数值型数据。 信息:信息

4、:根据根据ISO定义,可以通俗认为,定义,可以通俗认为,信息是对人有用的数据信息是对人有用的数据,这些数据可能影响到人们的行为和决策。这些数据可能影响到人们的行为和决策。 计算机信息处理计算机信息处理,简言之由计算机进行数据处理,处理主要目标简言之由计算机进行数据处理,处理主要目标是获取有用信息是获取有用信息。即通过数据采集和输入、有效地把数据组织到计。即通过数据采集和输入、有效地把数据组织到计算机中,由计算机系统对数据进行相应的处理加工算机中,由计算机系统对数据进行相应的处理加工(如存储、建库、如存储、建库、转换、合并、分类、计算统计、汇总、传送等操作转换、合并、分类、计算统计、汇总、传送等

5、操作),最后提供有,最后提供有用的信息给用户。用的信息给用户。 媒体媒体承载信息的载体。承载信息的载体。 根据根据ITU下属下属CCITT的定义,与计算机信息处理有关的媒体有的定义,与计算机信息处理有关的媒体有5种:种: 3 感觉媒体感觉媒体 表示媒体表示媒体 存储媒体存储媒体 表现媒体:表现媒体: 传输媒体:通信载体传输媒体:通信载体 数字计算机内部所处理数字计算机内部所处理的所有数字都是的所有数字都是“数字化数字化编码编码”了的数据,即都是了的数据,即都是一种一种表示媒体表示媒体信息。信息。4 “数字化编码数字化编码”过程过程:指对感觉媒体信息进行:指对感觉媒体信息进行定时定时采样,将现实

6、采样,将现实世界中的连续信息转换成计算机中的离散的世界中的连续信息转换成计算机中的离散的“样本样本”信息。然后对信息。然后对这些离散的这些离散的“样本样本”信息用信息用“0”或或“1”这两个基本符号进行数字化这两个基本符号进行数字化编码,即对样本值进行二进制编码。编码,即对样本值进行二进制编码。 编码编码:就是用:就是用少量简单少量简单的基本符号,对大量复杂多样的信息进行的基本符号,对大量复杂多样的信息进行一定规律的组合。一定规律的组合。 基本符号和组合规则是一切信息编码的两大要素。基本符号和组合规则是一切信息编码的两大要素。 计算机内部采用二进制表示的原因有以下三个原因计算机内部采用二进制表

7、示的原因有以下三个原因: 二进制只有两种基本状态,与两个稳定状态的物理器件的状况二进制只有两种基本状态,与两个稳定状态的物理器件的状况相符,易实现。相符,易实现。 二进制的编码、计数和运算规则简单易行。二进制的编码、计数和运算规则简单易行。 “0”和和“1”两个符号正好与逻辑命题的两个逻辑值两个符号正好与逻辑命题的两个逻辑值“假假”和和“真真”相对应,为计算机应用于逻辑判断提供了方便。相对应,为计算机应用于逻辑判断提供了方便。 计算机内部处理的对象分为两大类计算机内部处理的对象分为两大类:数值型数据和非数值型数据。:数值型数据和非数值型数据。 数值数据的编码表示数值数据的编码表示 输入到计算机

8、内部的数据若有确定的值,即在数轴上能找到其对输入到计算机内部的数据若有确定的值,即在数轴上能找到其对应的点,则称为应的点,则称为数值数据数值数据。5 计算机内部的数值数据的表示方法有两大类:计算机内部的数值数据的表示方法有两大类:直接用二进制数表直接用二进制数表示示或或采用二进制编码的十进制采用二进制编码的十进制(BCD码码Binary Coded Decimal Number)表示。表示。2.1 进位计数制与数制之间的转换进位计数制与数制之间的转换 进位计数制进位计数制用少量的符号用少量的符号(也称数码也称数码),按先后次序把它们排列,按先后次序把它们排列成序列,由低到高进行计数,计满进位。

9、成序列,由低到高进行计数,计满进位。 基数基数计数制中所用到的数字符号个数。计数制中所用到的数字符号个数。 位权位权(权数权数)以基数为底的指数,指数的幂是数位的序号。以基数为底的指数,指数的幂是数位的序号。 一般而言,在任一个进位计数制中,若具有一般而言,在任一个进位计数制中,若具有0,1,R- -1共共R个数字字符个数字字符,则称该数字系统为,则称该数字系统为R进制进制数字系统,其数字系统,其基数为基数为R,采,采用的是用的是“逢逢R进一进一”的运算规则,的运算规则,第第i位上的位权为位上的位权为Ri。其位权展开。其位权展开式如下:式如下: 1)(nmiiiRRxNV=xn-1 Rn- -

10、1+ xn-2 Rn- -2+ + x1 R1+ x0 R0+x- -1 R- -1+ x- -2 R- -2+ + x- -m R- -m (2-1)6 一般地,一个十进制数一般地,一个十进制数D=dn-1dn- -2d1d0.d- -1d- -2 d- -m 其对应值为:其对应值为: V(D) 10 =dn-2 10n- -2 +dn-1 10n- -1+ + d1 101+d0 100+d- -1 10- -1+d- -2 10- -2+ + d- -m 10- -m 其中其中di (i=n-1,1,0,- -1,- -2,- -m)可是可是09十十个数字符个数字符号中任何一个,故号中任

11、何一个,故基数基数为为“10”。 10i为第为第i位上的位权位上的位权。在十进制数。在十进制数进行运算时,每位计满十之后要向高位进一。进行运算时,每位计满十之后要向高位进一。 例:十进制数例:十进制数2059.65代表的实际值用位权展开为代表的实际值用位权展开为V(2059.65)10=2 103+ 0 102+ 5 101+ 9 100+ 6 10- -1+ 5 10- -2 同理,二进制数的基数是同理,二进制数的基数是2,只有两个数字符号,只有两个数字符号“0”和和“1”,采,采用用“逢二进一逢二进一”的规则。的规则。 例:二进制数例:二进制数(100101.01)2的实际值的实际值(10

12、0101.01)2=1 25+0 24+0 23+1 22 +0 21+ 0 20+0 2- -1+ 1 2- -2 一般地,一个二进制数一般地,一个二进制数B=bn- -1 bn- -2b1b0.b- -1b- -2 b- -m7 其对应值为:其对应值为: V(B)2= bn-1 2n- -1+ bn-2 2n- -2+b1 21+b0 20+b- -1 2- -1+b- -2 2- -2+b- -m 2- -m 其中其中bi (i=n- -1,n- -2,1,0,- -1,- -2,- -m)可是可是0或或1两个两个数字之一。数字之一。 例例2.1计算机系统中常用的进位计数制有:计算机系统

13、中常用的进位计数制有: 二进制数:二进制数:基数为基数为2,各位数字的取值范围是,各位数字的取值范围是0l,计数规则是,计数规则是“逢二进一逢二进一”,后缀为后缀为B。如如(10100011.1101)2=10100011.1101B。 八进制数:八进制数:基数为基数为8,各位数字的取值范围是,各位数字的取值范围是07,计数规则是,计数规则是“逢八进一逢八进一”,后缀为后缀为O或或Q。 如如(137.67)8=137.67Q。 十进制数:十进制数:基数为基数为10,各位数字的取值范围是,各位数字的取值范围是O9,计数规则是,计数规则是“逢十进一逢十进一”,后缀为后缀为D或不用后缀或不用后缀。

14、如如(2357.89)10=2357.89 或或 (2357.89)10=2357.89D。 十六进制数:十六进制数:基数为基数为16,基本符号基本符号0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。计数规则是计数规则是“逢十六进一逢十六进一”,后缀为后缀为H, 如如(A9BF.36E)16=A9BF.36EH。8四种进位计数制之间的关系见下表。四种进位计数制之间的关系见下表。F15171111E14161110D13151101C12141100B11131011A10121010991110018810100077701116660110555010144401003330

15、011222001011100010000000十六进制十六进制十进制十进制八进制八进制二进制二进制四种进位计数制之间对应关系表四种进位计数制之间对应关系表9 在进行不同进制数的转换时,应注意以下几个方面的问题:在进行不同进制数的转换时,应注意以下几个方面的问题: 1)不同进制数的基数不同,所使用的数字的取值范围也不同。不同进制数的基数不同,所使用的数字的取值范围也不同。 2)将任意进制数转换为十进制数的方法是将任意进制数转换为十进制数的方法是“按权相加按权相加”,即利用,即利用按权展开多项式将系数按权展开多项式将系数xi与位权值相乘后,将乘积逐项求和。与位权值相乘后,将乘积逐项求和。 例例

16、(100101.01)2=(1 25+0 24+0 23+1 22+0 21+1 20+0 2-1+1 2-2)10=(37.25)10 例例 (307.4)8=(3 82+0 81+7 80+4 8-1)10=(199.5)10 例例 (4A.2)16=(4 16+10 160+4 16-1)10=(74.125)10 3)将十进制数转换为任意进制数时,整数部分与小数部分需分别将十进制数转换为任意进制数时,整数部分与小数部分需分别进行转换。整数部分的转换方法是进行转换。整数部分的转换方法是“除除以以基取余基取余”,小数部分的转,小数部分的转换方法是换方法是“乘乘以以基取整基取整”。 10 (

17、1)利用除利用除以以基取余法将十进制整数转换为基取余法将十进制整数转换为R进制整数的规则:进制整数的规则: 把被转换的十进制整数除以基数把被转换的十进制整数除以基数R,所得余数即为,所得余数即为R进制整数进制整数的最低位数字。的最低位数字。 将前次计算所得到的商再除以基数将前次计算所得到的商再除以基数R,所得余数即为,所得余数即为R进制整进制整数的相应位数字。数的相应位数字。 重复步骤,直到商为重复步骤,直到商为0为止。为止。 (2)利用乘利用乘以以基取整法将十进制小数转换为基取整法将十进制小数转换为R进制小数的规则:进制小数的规则: 把被转换的十进制小数乘以基数把被转换的十进制小数乘以基数R

18、,所得乘积的整数部分即为,所得乘积的整数部分即为R进制小数的最高位数字。进制小数的最高位数字。 将前次计算所得到的乘积的小数部分再乘以基数将前次计算所得到的乘积的小数部分再乘以基数R,所得新的,所得新的乘积的整数部分即为乘积的整数部分即为R进制小数的相应位数字。进制小数的相应位数字。 重复步骤,直到乘积的小数部分为重复步骤,直到乘积的小数部分为0或求得所要求的位数为或求得所要求的位数为止。止。 4)因为因为23=8,24=16,所以二进制数与八进制数、十六进制数之间,所以二进制数与八进制数、十六进制数之间的转换可以利用它们之间的对应关系直接进行转换。的转换可以利用它们之间的对应关系直接进行转换

19、。 11 (1)将二进制数转换为八进制数的方法:将二进制数转换为八进制数的方法: 将二进制数的整数部分从最低有效位开始,每三位二进制数对将二进制数的整数部分从最低有效位开始,每三位二进制数对应一位八进制数,不足三位,高位补应一位八进制数,不足三位,高位补0。 将二进制数的小数部分从最高有效位开始,每三位二进制数对将二进制数的小数部分从最高有效位开始,每三位二进制数对应一位八进制数,不足三位,低位补应一位八进制数,不足三位,低位补0。 (2)将二进制数转换为十六进制数的方法:将二进制数转换为十六进制数的方法: 将二进制数的整数部分从最低有效位开始,每四位二进制数对将二进制数的整数部分从最低有效位

20、开始,每四位二进制数对应一位十六进制数,不足四位,高位补应一位十六进制数,不足四位,高位补0。 将二进制数的小数部分从最高有效位开始,每四位二进制数对将二进制数的小数部分从最高有效位开始,每四位二进制数对应一位十六进制数,不足四位,低位补应一位十六进制数,不足四位,低位补0。 例例2.2将二进制数将二进制数110011.101转换为十进制数。转换为十进制数。 解:解:利用按权展开多项式,采用利用按权展开多项式,采用“按权相加按权相加”的方法进行转换。的方法进行转换。 (110011.101)2=25+24+21+20+2-1+2-3 =32+16+2+1+0.5+0.125 =(51.625)

21、10 128 104 0 例例2.3将将 (10101.0110101)2转换为八进制数和十六进制数。转换为八进制数和十六进制数。 解:根据二进制数转换为八进制数的方法可得解:根据二进制数转换为八进制数的方法可得 (10101.0110101)2=(010 101.011 010 100)2 = (25.324)8 根据二进制数转换为十六进制数的方法可得根据二进制数转换为十六进制数的方法可得 (10101.0110101)2=(0001 0101.0110 1010)2 = (15.6A)8 例例2.4 将十进制数将十进制数834转换成八进制数转换成八进制数 余数余数 低位低位 8 834 2

22、8 1 1 8 13 5 0 高位高位 所以所以(834)10=(1502)8 将十进制数将十进制数834转换成二进制数转换成二进制数13 0 高位高位 2 834 0 2 417 1 2 208 0 2 104 0 2 52 0 2 26 0 2 13 0 2 6 0 2 3 1 2 1 1 所以,所以所以,所以(835)10=(11 0100 0010)2余数余数 低位低位14 1 1.50 2 0 0.75 2 1 1.375 2 例将例将(0.6875)10转换为二进制数。转换为二进制数。 高位高位 整数位整数位 0.6875 2 1 1.0 低位低位 故故(0.6875)10=(0.

23、1011)215 将将(0.6875)10转换为八进制数。转换为八进制数。 高位高位 整数位整数位 低位低位 故故(0.6875)10=(0.54)8 注意注意:由于计算机的位数限制,或者被转换的十进制实数不一定由于计算机的位数限制,或者被转换的十进制实数不一定表达成表达成 2- -i的形式,其转换的结果,一般为近似值。的形式,其转换的结果,一般为近似值。 例例: 将将(0.15)10转换为二进制数,设计算机系统为转换为二进制数,设计算机系统为8位二进制,则位二进制,则小数为小数为7位,转换过程如下:位,转换过程如下: 0.6875 8 5 5. 5 8 4 4. 0 16 0.15 2 0

24、0.30 2 0 0.60 2 0 0.40 2 高位高位 整数位整数位 1 1.20 2 0 0.80 2 1 1.20 1 1.60 2 低位低位 故故(0.15)10(0.0010011)2172.2 带符号数的表示带符号数的表示2.2.1 机器数与真值机器数与真值 采用二进制表示形式的连同数符一起代码化了的数据,在计算机采用二进制表示形式的连同数符一起代码化了的数据,在计算机中统中统称为机器数或机器码称为机器数或机器码。 真值真值- -用正、负符号加绝对值来表示的实际数值。用正、负符号加绝对值来表示的实际数值。 机器数可分为无符号数和带符号数两种机器数可分为无符号数和带符号数两种。 无

25、符号数无符号数- -是指计算机字长的所有二进制位均表示数值。是指计算机字长的所有二进制位均表示数值。 带符号数带符号数- -是指机器数分为符号和数值部分,且均用二进制代码表是指机器数分为符号和数值部分,且均用二进制代码表示。示。 例例25设某机器的字长为设某机器的字长为8位,无符号整数在机器中的表示形式位,无符号整数在机器中的表示形式为:为: 70数数 据据带符号整数在机器中的表示形式为:带符号整数在机器中的表示形式为:70S数数 据据18 分别写出机器数分别写出机器数10011001作为无符号整数和带符号整数对应的真作为无符号整数和带符号整数对应的真值。值。 解:解:10011001作为作为

26、时,对应的真值是时,对应的真值是(10011001)2=(153)10 10011001作为作为时,其时,其最高位的数码最高位的数码1代表符号代表符号“- -”,所以与机器数,所以与机器数10011001对应的真值是对应的真值是(- -0011001)2=(- -25)10 综上所述,可得机器数的特点为:综上所述,可得机器数的特点为: (1)数的符号采用二进制代码化,数的符号采用二进制代码化,0代表代表“+”,1代表代表“- -”。通常将。通常将符号的代码放在数据的最高位。符号的代码放在数据的最高位。 (2)小数点本身是隐含的,不占用存储空间。小数点本身是隐含的,不占用存储空间。 (3)每个机

27、器数数据所占的二进制位数受机器硬件规模的限制,与每个机器数数据所占的二进制位数受机器硬件规模的限制,与机器字长有关。超过机器字长的数值要舍去。机器字长有关。超过机器字长的数值要舍去。19 例如,例如,如果要将数如果要将数x=+0.101100111在字长为在字长为8位的机器中表示为一位的机器中表示为一个单字长的数,则只能表示为个单字长的数,则只能表示为01011001,最低位的两个最低位的两个1无法在机无法在机器中表示器中表示。 因为机器数的长度是由机器硬件规模规定的,所以机器数表示的因为机器数的长度是由机器硬件规模规定的,所以机器数表示的数值是不连续的。数值是不连续的。 例如例如8位二进制无

28、符号数可以表示位二进制无符号数可以表示256个整数个整数:0000 00001111 1111可表示可表示0127; 8位二进制带符号数中位二进制带符号数中: 0 00000000 1111111可表示正整数可表示正整数0127, 1 11111111 0000000可表示负数可表示负数- -1270,共,共256个数,个数, 其中其中00000000表示表示+0,10000000表示表示- -0。 2.2.2 原码表示原码表示 编码系统编码系统 确定一个数值数据的三要素是确定一个数值数据的三要素是:进位计数制、定点进位计数制、定点/浮点表示浮点表示和和编编码表示码表示。它们分别用来解决数值数

29、据的它们分别用来解决数值数据的基本符号基本符号、小数点位置和数小数点位置和数的正负号的正负号。20 设设n+1位机器数位机器数X的的数字化编码后数字化编码后的的机器数机器数X表示为:表示为:xnxn-1-1x1 1x0 0。 其中其中xi为为0或或1。 机器数机器数X的第一位的第一位xn为数的符号,它的取值与真值为数的符号,它的取值与真值XT有关。有关。大多大多数情况下,取值数情况下,取值0表示该数为正,取值表示该数为正,取值1表示该数为负。表示该数为负。 机器数机器数X中除了中除了xn之外的后之外的后n位:位:xn-1-1x1 1x0 0是数值部分,各位取值是数值部分,各位取值与编码有关与编

30、码有关,各位取值规定如下各位取值规定如下: 当当XT0时时, xi = xi (X为定点整数为定点整数),或,或xi = xi-n (X为定点小数为定点小数) 当当XT0时时,数值部分各位取值依赖于相应的编码方式,常用的,数值部分各位取值依赖于相应的编码方式,常用的编码方式有编码方式有原码、补码原码、补码和和反码反码三种。三种。 原码表示法原码表示法 原码表示法也称原码表示法也称“数值数值- -符号符号”表示法。符号用表示法。符号用“0”表示表示“+”,“1”表示表示“- -”。 设有定点小数设有定点小数 0.x1x2 xn ,其原码用,其原码用n+1位字长位字长表示形式为表示形式为xs.x1

31、x2 xn ,其中,其中xs为符号位。那么,原码的定义如下:为符号位。那么,原码的定义如下:212)-(2 01- |1110 xxxxxx原原 设有定点整数设有定点整数 xnxn-1 x0 ,其原码用,其原码用n+1位字长位字长表示形式为表示形式为xs,xn-1xn-2 x0 ,其中,其中xs为符号位。那么,原码的定义如下:为符号位。那么,原码的定义如下:3)-(2 02- |2220 xxxxxxnnnn原原 例例2.6 已知已知x,求求x的原码的原码x原原。 x=+0.1010110 x=- -0.1010110 x= +1010110 x= +1010110 解:解:根据原码的定义,可

32、得根据原码的定义,可得 x原原=x=0.1010110 x原原=1- -x=1+|x|=1+0.1010110= 1.1010110 x原原=x=0 1010110 x原原=2n- -x=2n+|x|=1 0000000+ 0 1010110=1 101011022 由例由例2.6的结果可知:的结果可知: (1) x原原的表示形式的表示形式x0.x1x2 xn为符号位加上为符号位加上x的绝对值。的绝对值。 当当x0时时,符号位,符号位x0=0; 当当x0时时,符号位,符号位x0=1。 (2)当当x为纯小数时为纯小数时,X原原中的小数点默认在符号位中的小数点默认在符号位x0和数值最高和数值最高位

33、位x1之间;之间; 当当x0时,时, x原原=x; 当当x0时,时, x原原=l+|x|,即符号位加上,即符号位加上x的小数部分的绝对值。的小数部分的绝对值。 当当x为纯整数时为纯整数时, x原原中的小数点默认在数值最低位中的小数点默认在数值最低位xn之后;之后; 当当x0时,时, x原原=x; 当当x0时,时, x原原=2n- -x=2n+|x| ,其中,其中2n是符号位的权值,是符号位的权值, 2n+|x|相当于使符号为相当于使符号为l。 (3)将将x原原的符号取反,即可得到的符号取反,即可得到- -x原原。 2原码中原码中0的表示的表示 纯小数纯小数+0和和- -0的原码表示的原码表示:

34、 +0原原=0.000 - -0原原=1.00023 纯整数纯整数+0和和- -0的原码表示的原码表示: +0原原=0 000 - -0原原=1 000 3原码的左移和右移原码的左移和右移 对于二进制纯小数对于二进制纯小数x=0.x1x2 xn 求求2x时,只需将时,只需将0.x1x2 xn依次左移一位,最低位的空位填依次左移一位,最低位的空位填0即可,即可, 即即2x=x1.x2 xn0。当然,为了保证。当然,为了保证x左移后仍然是纯小数,左移后仍然是纯小数,0.x1x2 xn中的中的x1应为应为0,否则,否则2x就会大于就会大于1,而不是纯小数了。,而不是纯小数了。 x21只需将只需将x1

35、x2xn依次右移一位,移出的最高位的空位填依次右移一位,移出的最高位的空位填0即可即可nxxxx210 . 021 即即 原码的移位规则是:原码的移位规则是:符号位不变,数值部分左移或右移,移出的符号位不变,数值部分左移或右移,移出的空位填空位填0。 例例2.7 已知已知x原原,求,求2x原原、 x/2原原。 24 x原原=0.0101001 x原原=10011010 解:解: 2x原原=0.1010010 左移后,符号位保持不变,最高位移左移后,符号位保持不变,最高位移出,最低位填出,最低位填0。 x/2原原=1.0010100 右移后,符号位保持不变,最高位填右移后,符号位保持不变,最高位

36、填0,末尾的末尾的1移出。移出。 2x原原=10110100 x/2原原=1 0001101 在原码的左移过程中,注意不要将高位的有效数值位移出,否则在原码的左移过程中,注意不要将高位的有效数值位移出,否则将会出错将会出错(称为上溢称为上溢)。 4原码的特点原码的特点 (1)原码表示直观、易懂,与真值的转换容易。原码表示直观、易懂,与真值的转换容易。 (2)原码表示中原码表示中0有两种不同的表示形式,给使用带来了不便。有两种不同的表示形式,给使用带来了不便。 (3)原码表示法的缺点原码表示法的缺点:原码表示的加减运算复杂。原码表示的加减运算复杂。 252.2.3 补码表示补码表示 补码表示法也

37、称补码表示法也称“符号符号- -2”表示法。也就是补码表示的机器数由表示法。也就是补码表示的机器数由符号后跟上真值的模符号后跟上真值的模2补码构成。补码构成。 模运算模运算 剩下的低剩下的低n位不能正确反映运算结果,位不能正确反映运算结果,也即舍弃的高位是运算也即舍弃的高位是运算的一部分的一部分,意味着计算结果超出了计算机所能表示的范围,我们称,意味着计算结果超出了计算机所能表示的范围,我们称之为之为“溢出溢出”。 剩下的剩下的n位数能正确表示运算结果,也即位数能正确表示运算结果,也即舍弃的高位是并不影舍弃的高位是并不影响运算结果响运算结果。 对于一个多于对于一个多于n位的数丢弃高位而保留低位

38、的数丢弃高位而保留低n位数的过程,实际上是位数的过程,实际上是等价于将这个多于等价于将这个多于n位的数去除以位的数去除以2 ,然后丢去商保留余数,这种,然后丢去商保留余数,这种操作运算就是操作运算就是模运算模运算。 在模运算中在模运算中,若,若A,B,M满足下列关系:满足下列关系:A=B+K M (K为整数为整数) 则记为则记为 AB (mod M) 上式表示上式表示A和和B分别除以分别除以M后所得余数相同。后所得余数相同。称称B和和A关于模关于模M同同余。也就是说,一个数与除以一个模余。也就是说,一个数与除以一个模M后所得的余数是等价的。后所得的余数是等价的。26 例:时钟系统的模数是例:时

39、钟系统的模数是12。设现在时间是。设现在时间是6点,而表停在点,而表停在10点上,点上,则有两种校正方法:则有两种校正方法: 10- -4=6 10+8 =18=10+(12- -4) 6 (mod 12) 所以在模所以在模12系统中:系统中:10- -410+8 (mod 12),即,即 - -48 (mod 12) 称称8是是- -4对模对模12的的补码补码。同理称。同理称9是是- -3对模对模12的的补码补码。 由上例可得如下结论由上例可得如下结论: 对于一个确定的模,某数减去对于一个确定的模,某数减去小于模小于模的一个数,总可以用的一个数,总可以用该数该数加加上上模与减数的绝对值之差模

40、与减数的绝对值之差来代替,即用来代替,即用该数该数加上加上另一数对于模另一数对于模的的补补码码来代替。来代替。 对于任意对于任意x,在模,在模M的条件下的补数的条件下的补数x补补,可由式,可由式(2- -4)给出:给出: x补补=m+x(mod M) (2- -4) 例例 时钟系统时钟系统 10- -410+(12- -4)10+86 (mod 12) 27 例例 4位十进制计数器位十进制计数器 9828- -19289828+(104- -1928)9828+8072 7900 (mod 104) 根据式根据式(2- -4)可知可知: (1)当当x0时,时,m+x大于大于M,把,把M丢掉,得

41、丢掉,得x补补=x,即正数的补数等,即正数的补数等于其本身。于其本身。 (2)当当x0时,时,x补补 m+xM- -|x|,即负数的补数等于模与该数,即负数的补数等于模与该数绝对值之差。绝对值之差。 例例2.8求求 模模时,二进制数时,二进制数x的补数。的补数。 x+0.10110101 x- -0.10110101 解:解: 因为因为x0,把模,把模2丢掉,所以丢掉,所以x补补=2+x=0.10110101 (mod2) 因为因为x0,所以,所以x补补=2+x=2- -|x|=10.00000000- -0.10110101 =1.01001011 (mod 2) 2补码的定义补码的定义 设

42、补码的位数为设补码的位数为n+1位位(其中符号占其中符号占1位位),数值部分为,数值部分为n位。则补位。则补码定义如下:码定义如下:28 设有定点小数设有定点小数 0.x1x2 xn ,其补码用,其补码用n+1位字长位字长表示形式为表示形式为xs.x1x2 xn ,其中,其中xs为符号位。那么,其补码的定义如下:为符号位。那么,其补码的定义如下: 设有定点整数设有定点整数 xnxn-1 x0 ,其原码用,其原码用n+1位字长位字长表示形式为表示形式为xs,xn-1xn-2 x0 ,其中,其中xs为符号位。那么,补码的定义如下:为符号位。那么,补码的定义如下:5)-(2 2) (mod 01-

43、210 xxxxx补补6)-(2 )2 (mod 02- |2220 111 nnnnnxxxxxx补补 例例2.9 已知已知x,求,求x的补码的补码x补补 x=+0.1010110 x=- -0.1010110 x=+1010110 x=- -1010110 解:解:根据补码的定义,可得根据补码的定义,可得 x补补=x=0.1010110 x补补=2+x=10.0000000+(- -0.1010110 )=1.0101010 x补补=x= 0 1010110 x补补=27+x=10000000+(- -1010110 )=1 01010104929 3特殊数的补码表示特殊数的补码表示 (1

44、) 真值真值0的补码表示的补码表示 根据补码的定义可知,真值根据补码的定义可知,真值0的补码表示是惟一的的补码表示是惟一的,即:,即: +0补补= - -0补补=20.00.0=0.000 (纯小数纯小数) +0补补= - -0补补=2n+10000=0000 (纯整数纯整数) (2) - -1和和- -2n的补码表示的补码表示 在纯小数补码表示中,在纯小数补码表示中, - -1补补=2+(- -1.00.0)=1.000 在纯整数补码表示中,在纯整数补码表示中,- -2n补补= 1 00.0 +(- -1 00.0)=1 000 n+1个个0 n个个0 n个个0 4补码的简便求法补码的简便求

45、法 给定一个二进制数给定一个二进制数x,如果需要求其补码,可以直接根据定义求,如果需要求其补码,可以直接根据定义求得。但当得。但当x0时,根据定义需要做减法运算,不太方便,因此可采时,根据定义需要做减法运算,不太方便,因此可采用以下简便方法:用以下简便方法: (1)若若x0,则,则x补补=x,并使符号位为,并使符号位为0。 (2)若若x0,符号固定为符号固定为1,数值部分的各位取反,末位加,数值部分的各位取反,末位加1。即得即得x补补30 例例2.10 证明补码的简便求法。证明补码的简便求法。 证:证:设设x为纯小数,根据式为纯小数,根据式(2- -5)的定义,有的定义,有 当当x=+0.x1

46、x2 xn 时,时, x补补= 0.x1x2 xn ,这时符号位,这时符号位x0=0,表,表示示x0; 当当=- -0.x1x2 xn时,时, x补补=2+x=2- -0.x1x2 xn =1.111+0.001- -0.x1x2 xn=1.111- -0.x1x2 xn +0.001所以当所以当x0时,将时,将x的各位取反,再在最低位上加的各位取反,再在最低位上加1,即可求得,即可求得x的补码的补码x补补。还有一种简单的方法求负数还有一种简单的方法求负数x的补码的补码: x0,符号位固定为符号位固定为1,从右往左查其原码,遇到第,从右往左查其原码,遇到第1个时,其右个时,其右各位各位0和该位

47、和该位1照写,该位照写,该位1之左各位取反即可之左各位取反即可。 例例2.11 用简便方法求出例用简便方法求出例2.9中中x的补码。的补码。 x=+0.1010110, x0,x补补= 0.1010110 x=- -0.1010110, x0,x补补=1.0101010 x=+1010110, x0,x补补=0 1010110 x=- -1010110, x0,x补补=1 0101010 010 . 0. 121 nxxx31 例例 已知已知x补补=1 0100110,求,求x。 解:解: x0=1,表明,表明x0,可用下面两种方法求,可用下面两种方法求x真值。真值。 将将x的各位取反,再在最

48、低位上加的各位取反,再在最低位上加1,即可求得,即可求得 x补补的真值的真值xx=- -(1011001+1)=- -1011010 符号位为符号位为1,则真值符号取,则真值符号取“- -” ,数值位从右往左遇到第,数值位从右往左遇到第1个时,其右各位个时,其右各位0和该位和该位1照写,该位照写,该位1之左各位取反即可。之左各位取反即可。x=- -1011010表表2- -1 n=3位时所有整数的补码位时所有整数的补码真值真值补码补码真值真值补码补码+111(+7)0 111- - 001(- - 1)1 111+110(+6)0 110- - 010(- - 2)1 110+101(+5)0

49、 101- - 011(- - 3)1 101+100(+4)0 100- - 100(- - 4)1 100+011(+3)0 011- - 101(- - 5)1 011+010(+2)0 010- - 110(- - 6)1 010+001(+1)0 001- - 111(- - 7)1 001+000(+0)0 000- - 1000(- - 8)1 00032图图2-1 补码的几何性质补码的几何性质 补码的几何性质说明了以下两点:补码的几何性质说明了以下两点: (1)正数的补码表示就是其本身,正数的补码表示就是其本身,负数的补码表示的实质是把负数负数的补码表示的实质是把负数映像到正值

50、区域,因此加上一个负数或减去一个正数可以用加上另映像到正值区域,因此加上一个负数或减去一个正数可以用加上另一个数一个数(负数或减数对应的补码负数或减数对应的补码)来代替。来代替。 (2)从补码表示的符号看,补码中符号位的值代表了数的正确符号从补码表示的符号看,补码中符号位的值代表了数的正确符号,0表示正数,表示正数,1表示负数;表示负数;而从映像值来看,符号位的值是映像值而从映像值来看,符号位的值是映像值的一个数位,因此在补码运算中,符号位可以与数值位一起参加运的一个数位,因此在补码运算中,符号位可以与数值位一起参加运算。算。33 6补码的几个关系补码的几个关系 补码与原码的转换关系补码与原码

51、的转换关系 若若x0,则,则x原原= x补补 。 若若x0,则将,则将x原原除符号位以外的各位取反后除符号位以外的各位取反后(即符号位不变即符号位不变),再在最低位上加,再在最低位上加1,即可得到,即可得到x补补;反之,将;反之,将x补补除符号位以外除符号位以外的各位取反后,再在最低位上加的各位取反后,再在最低位上加1,即可得到,即可得到x原原。 例例2.12将下列将下列x的原码表示转换为补码表示。的原码表示转换为补码表示。 x原原=0.1010110 x原原=1.1010110 x原原=01010110 x原原=11010110 解:解:根据原码与补码的转换原则,得根据原码与补码的转换原则,

52、得 x原原=0.1010110, x0 x补补=0.1010110 x原原=1.1010110, x0 x补补=1.0101010 x原原=0 1010110, x0 x补补=0 1010110 x原原=1 1010110 , x0 x补补=1 0101010例例2.13将下列将下列x的补码表示转换为原码表示,并求出对应的真值。的补码表示转换为原码表示,并求出对应的真值。 x补补=1.10110 x补补=1.1110134 解:解: x补补=1.10110 x原原= 1.01010, x=- -0.01010 x补补=1.11101 x原原= 1.00011, x=- -0.00011 补码与

53、机器负数的关系补码与机器负数的关系 由由x补补求求- -x补补规则是规则是:连符号位一起取反,末位加连符号位一起取反,末位加1。 证明如下:证明如下: 设设x补补=1.0100110,求,求- -x补补 x原原=1.1011010 x =- -0.1011010 则则 - -x =+ +0.1011010 所以所以 - -x补补=0.1011010 例例2.14 已知已知x补补,求,求- -x补补 。 x补补=0 1001101 x补补=1 0110010。 解:根据对解:根据对X补补求补的规则,得求补的规则,得 x补补=0 1001101, - -x补补=1 0110011 x补补=1 01

54、10010, - -x补补=0 1001110 35 补码的左移和右移补码的左移和右移 例:由例:由x补补求求x/2补补。 设设 x补补=x0.x1x2 xn 当当 x0=0时,即时,即x值为正,值为正,x补补=0.x1x2 xn= niiixx12 即即 x= 1.x1x2 xn- -2= - -1+0.x1x2 xn=- -1+ niiix12 故故 x= - -x0+ niiix12 而而 niiiniiixxxxxx111001022222 niiixx0)1(02 当当 x0=1时,即时,即x值为负值为负,x补补=1.x1x2 xn= 2+x 写成补码形式,即得:写成补码形式,即得:

55、 x/2补补= x0.x0 x1x2 xn36 由此可见,由此可见, x/2补补是是x补补连同符号连同符号一起一起右移右移1位,依此类推求位,依此类推求2- -ix补补,则,则x补补连同符号一起右移连同符号一起右移 i 位即可。位即可。 根据二进制数的移位规则和补码的定义,可知补码的移位规则:根据二进制数的移位规则和补码的定义,可知补码的移位规则: 补码的左移:补码的左移:符号位不变,数值部分左移,最低位移出的空位符号位不变,数值部分左移,最低位移出的空位填填0。 补码的右移:补码的右移:符号位不变,数值部分右移,符号位不变,数值部分右移,最高位移出的空位最高位移出的空位填补与符号位相同的代码

56、。填补与符号位相同的代码。 例例2.15 已知已知x补补,求,求2x补补,x/2补补 x补补=0.0101001 x补补=11011010 解:解: x补补=0.0101001, 2x补补=0.1010010 左移后,符号位保持不变,数值最高位移出,最低位填左移后,符号位保持不变,数值最高位移出,最低位填0。 x/2补补=0.0010100 右移后,符号位保持不变,数值最高位填与符号位相同的右移后,符号位保持不变,数值最高位填与符号位相同的0,末尾的末尾的1移出。移出。 37 x补补=1 1011010, 2x补补=1 0110100 左移后,符号位保持不变,数值最高位移出,最低位填左移后,符

57、号位保持不变,数值最高位移出,最低位填0。 x/2补补=1 1101101 右移后,符号位保持不变,数值最高位填与符号位相同的右移后,符号位保持不变,数值最高位填与符号位相同的1,末,末尾的尾的0移出。移出。设设X补补=1.0100110,则,则 X/2补补=1.1010011,X/4补补=1.1101001,。 7补码的特点补码的特点 (1)在补码表示中,用符号位在补码表示中,用符号位x0表示数值的正负,形式与原码表示表示数值的正负,形式与原码表示相同,即相同,即0为正;为正;l为负。但补码的符号可以看做是数值的一部分参为负。但补码的符号可以看做是数值的一部分参加运算。加运算。 (2)在补码

58、表示中,数值在补码表示中,数值0只有一种表示方法,即只有一种表示方法,即000。 (3)负数补码的表示范围比负数原码的表示范围略宽。纯小数的补负数补码的表示范围比负数原码的表示范围略宽。纯小数的补码可以表示到码可以表示到- -l,纯整数的补码可以表示到,纯整数的补码可以表示到- -2n。 382.2.4 反码表示反码表示 反码表示也是一种机器数,它实质上是一种特殊的补码,其特殊反码表示也是一种机器数,它实质上是一种特殊的补码,其特殊之处在于反码的模比补码的模小一个最低位上的之处在于反码的模比补码的模小一个最低位上的1。 1反码的定义反码的定义 根据补码的定义可以推出反码的定义如式根据补码的定义

59、可以推出反码的定义如式(2-7)和式和式(2-8)所示。所示。 设有定点小数设有定点小数 0.x1x2 xn ,其反码用,其反码用n+1位字长位字长表示形式为表示形式为x0.x1x2 xn ,其中,其中x0为符号位。那么,其反码的定义如下:为符号位。那么,其反码的定义如下: 设有定点整数设有定点整数 xnxn-1 x0 ,其反码用,其反码用n+1位字长位字长表示形式为表示形式为xn,xn-1xn-2 x0 ,其中,其中xn为符号位。那么,反码的定义如下:为符号位。那么,反码的定义如下:7)-(2 )2-2 (mod 01- 2210 -nnxxxxx 反反8)-(2 1)-2 (mod 02-

60、 1220 11nnnnxxxxx反其中,其中,n为为数值位数值位的长度。的长度。39 根据反码的定义可得反码表示的求法:根据反码的定义可得反码表示的求法: (1)若若x0,则使符号位为,则使符号位为0,数值部分与,数值部分与x相同,即可得到相同,即可得到x反反。 (2)若若x0,则使符号位为,则使符号位为1, x的数值部分各位取反,即可得到的数值部分各位取反,即可得到x反反。 例例2.16 已知已知x ,求,求x反反。 x=+0.0101001 x= +1011010 x=- -0.0101001 x=- -1011010 解:解:根据反码的定义,可得根据反码的定义,可得 x反反=0.010

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论