大学计算机基础14计算机中带符号数的表示方法

上传人:夏** 文档编号:570333312 上传时间:2024-08-03 格式:PPT 页数:36 大小:211KB
返回 下载 相关 举报
大学计算机基础14计算机中带符号数的表示方法_第1页
第1页 / 共36页
大学计算机基础14计算机中带符号数的表示方法_第2页
第2页 / 共36页
大学计算机基础14计算机中带符号数的表示方法_第3页
第3页 / 共36页
大学计算机基础14计算机中带符号数的表示方法_第4页
第4页 / 共36页
大学计算机基础14计算机中带符号数的表示方法_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《大学计算机基础14计算机中带符号数的表示方法》由会员分享,可在线阅读,更多相关《大学计算机基础14计算机中带符号数的表示方法(36页珍藏版)》请在金锄头文库上搜索。

1、1.4 计算机中带符号数的表示方法计算机中带符号数的表示方法n整数可以是正的或负的。整数可以是正的或负的。n正整数是从正整数是从0到正无穷,负整数是从负无穷到到正无穷,负整数是从负无穷到0。n为了高效地利用计算机的存储空间,人们设计开发了为了高效地利用计算机的存储空间,人们设计开发了两种使用广泛的整数表示法:无符号整数和有符号整两种使用广泛的整数表示法:无符号整数和有符号整数。数。121.4.1 无符号整数的格式无符号整数的格式n无符号整数就是没有符号的整数(无符号整数就是没有符号的整数(0正无穷大)。正无穷大)。n由于计算机不可能表示范围内的所有整数,通常,计由于计算机不可能表示范围内的所有

2、整数,通常,计算机都定义了一个最大无符号整数的常量。这样,无算机都定义了一个最大无符号整数的常量。这样,无符号整数的范围就介于符号整数的范围就介于0到该常量之间。到该常量之间。n最大无符号整数取决于计算机中分配用于保存无符号最大无符号整数取决于计算机中分配用于保存无符号整数的二进制位数。整数的二进制位数。n设设N是计算机中分配用于表示一个无符号整数的二进是计算机中分配用于表示一个无符号整数的二进制位数,则无符号整数的范围为:制位数,则无符号整数的范围为: 0(2N-1)位数范围80255160655353n表示法:表示法:q首先将整数变成二进制数。首先将整数变成二进制数。q如果二进制位数不足如

3、果二进制位数不足N位,则在二进制数的左边补位,则在二进制数的左边补0,使它的总位数为,使它的总位数为N位。位。n举例:举例:q将将9存储在存储在8位存储单元中。位存储单元中。q将将258存储在存储在16位存储单元中。位存储单元中。n1000000104n两类不同的计算机中无符号整数的存储两类不同的计算机中无符号整数的存储5溢出溢出n如果试图存储一个超出所定义范围内的数时而发生的如果试图存储一个超出所定义范围内的数时而发生的错误。错误。n例如,例如, 8位存储单元所能存放的无符号数的范围是:位存储单元所能存放的无符号数的范围是:0(28-1),即,即0255n如果将如果将258存放在存放在8位存

4、储单元中,就会产生溢出。位存储单元中,就会产生溢出。6n将无符号二进制数转换成十进制数:(同二进制到十将无符号二进制数转换成十进制数:(同二进制到十进制的转换)进制的转换)n例:例:q将转换成十进制数。将转换成十进制数。n32+8+2+1=437n应用:应用:q无符号整数表示法可以提高存储的效率,因为无符号整数表示法可以提高存储的效率,因为不必存储整数的符号,即所有的存储单元都可不必存储整数的符号,即所有的存储单元都可以用来存储数。以用来存储数。q只要无需用到负数,都可以用无符号整数表示只要无需用到负数,都可以用无符号整数表示法。法。n计数。当计数时,不需要负数,可以从计数。当计数时,不需要负

5、数,可以从1(有(有时时0)开始增长。)开始增长。n寻址。有些计算机语言,在一个存储单元中寻址。有些计算机语言,在一个存储单元中存储了另一个存储单元的地址。地址是从存储了另一个存储单元的地址。地址是从0(存储器的第一个字节)开始到整个存储器(存储器的第一个字节)开始到整个存储器的总字节数的正数。的总字节数的正数。81.4.2 有符号数有符号数1 原码表示法原码表示法n也叫符号加绝对值表示法。也叫符号加绝对值表示法。n用用1个二进制位表示符号(个二进制位表示符号(0表示正,表示正,1表示负)。表示负)。n则在则在8位存储单元中,仅仅用位存储单元中,仅仅用7位表示数的绝对值(不带符号)。位表示数的

6、绝对值(不带符号)。n最大的正数值仅是无符号整数最大数的一半。最大的正数值仅是无符号整数最大数的一半。n注意:注意:q在原码表示法中在原码表示法中0有两种表示法:正数有两种表示法:正数0和负数和负数0。q在在8位存储单元中:位存储单元中:n0 0n0 1若若整数整数的原码形式为的原码形式为012 n , 则原码表示的定义是则原码表示的定义是9n表示的范围:表示的范围:位数范围8-127-0+0+12716-32767-0+0+3276732-2147483647-0+0+ 214748364710n表示法:表示法:q将数转换成二进制,其中符号被忽略。将数转换成二进制,其中符号被忽略。q如果二进

7、制位数不足如果二进制位数不足N-1,左边补,左边补0,使总的位,使总的位数为数为N-1位。位。q如果是正数,则在左边加如果是正数,则在左边加0(使它变为(使它变为N位)。位)。如果是负数,则在左边加如果是负数,则在左边加1(使它变为(使它变为N位)。位)。n注意:在原码表示中,最左边的位用于定义数的注意:在原码表示中,最左边的位用于定义数的符号。如果是符号。如果是0,则表示该数为正数。如果是,则表示该数为正数。如果是1,则表示该数是负数。则表示该数是负数。11n例例1:用原码表示法将用原码表示法将+7存储在存储在8位存储单元中。位存储单元中。q(00000111)原原n例例2:用原码表示法将:

8、用原码表示法将-7存储在存储在8位存储单元中。位存储单元中。q(10000111)原原n例例3:用原码表示法将:用原码表示法将-258存储在存储在16位存储单元中。位存储单元中。q100000010q 0010q(10010)原原12n两类不同的计算机中有符号整数的存储两类不同的计算机中有符号整数的存储13n将用原码表示的二进制数转换成十进制数:将用原码表示的二进制数转换成十进制数:q忽略第一位(最左边位)。忽略第一位(最左边位)。q把剩下的把剩下的N-1位二进制数转换成十进制数。位二进制数转换成十进制数。q再在数的最左边加上再在数的最左边加上+号或号或-号。号。n例例2:把把(1011101

9、1)原原转换成十进制数。转换成十进制数。q-5914n采用原码表示法的优点:简单易懂,采用原码表示法的优点:简单易懂,缺点:缺点:(1) 加法运算复杂。这是因为,当两数相加时,加法运算复杂。这是因为,当两数相加时,如果是同号则数值相加;如果是异号,则要进行减法。如果是同号则数值相加;如果是异号,则要进行减法。而在进行减法时还要比较绝对值的大小,然后用绝对而在进行减法时还要比较绝对值的大小,然后用绝对值大的数减去绝对值小的数,最后还要给结果选择符值大的数减去绝对值小的数,最后还要给结果选择符号。号。 (2) 零的原码不惟一。零的原码不惟一。n为了解决这些矛盾,人们找到了补码表示法。为了解决这些矛

10、盾,人们找到了补码表示法。152 反码表示法反码表示法n取反:将所有的取反:将所有的0改为改为1,将所有的,将所有的1改为改为0。n规定:规定:q正数,使用原码表示法。正数,使用原码表示法。q负数,将正数取反表示。负数,将正数取反表示。若若整数整数的原码形式为的原码形式为012 n , 则反码表示的定义是则反码表示的定义是16n注意:注意:q在反码表示法中在反码表示法中0有两种表示法:正数有两种表示法:正数0和负数和负数0。q在在8位存储单元中:位存储单元中:q0 00000000q0 1111111117n表示法:表示法:q将数转换成二进制,其中符号被忽略。将数转换成二进制,其中符号被忽略。

11、q在数的左边补在数的左边补0,使总的位数为,使总的位数为N位。位。q如果是正数,则不需变动。如果是负数,则将如果是正数,则不需变动。如果是负数,则将每一位取反(将每一位取反(将0改为改为1,将,将1改为改为0 )。)。18n例例1:用反码表示法将用反码表示法将+7存储在存储在8位存储单元中。位存储单元中。q(00000111)反反n例例2:用反码表示法将用反码表示法将-7存储在存储在8位存储单元中。位存储单元中。q(11111000)反反n例例3:用反码表示法将用反码表示法将-258存储在存储在16位存储单元中。位存储单元中。q100000010q 00010q(111111101111110

12、1)反反19n将用反码表示的二进制数转换成十进制数:将用反码表示的二进制数转换成十进制数:q如果最左边的位为如果最左边的位为0(正数)(正数)n把整个二进制数转换成十进制数。把整个二进制数转换成十进制数。n在数的最左边加上在数的最左边加上+号。号。q如果最左边的位为如果最左边的位为1(负数)(负数)n把整个二进制数取反。把整个二进制数取反。n把转换过的二进制数转换成十进制数。把转换过的二进制数转换成十进制数。n在数的最左边加上在数的最左边加上-号。号。n例例1:把把(11110110)反反转换成十进制数。转换成十进制数。q-920n注意:注意:二进制反码表示法需要转换所有的位。二进制反码表示法

13、需要转换所有的位。q如果把正数取反,就得到相应的负数。如果把正数取反,就得到相应的负数。q如果把负数取反,就得到相应的正数。如果把负数取反,就得到相应的正数。q如果对一个数取两次反,就得到原来的值。如果对一个数取两次反,就得到原来的值。n应用:应用:q它是二进制补码的基础。它是二进制补码的基础。213 补码表示法补码表示法我们先以钟表对时为例说明补码的概念。假设现在的标准我们先以钟表对时为例说明补码的概念。假设现在的标准时间为时间为3点正;点正; 而有一只表已经而有一只表已经6点了,为了校准时间,点了,为了校准时间,可以采用两种方法:一是将时针退可以采用两种方法:一是将时针退 6-3=3 格;

14、一是将时针格;一是将时针向前拨向前拨12-3=9格。这两种方法都能对准到格。这两种方法都能对准到3点,由此可以点,由此可以看出,减看出,减3和加和加9是等价的,就是说是等价的,就是说9是是(-3)对对12的补码,的补码,可以用数学公式表示可以用数学公式表示-3+9(mod12)mod12的意思就是的意思就是12模数,这个模数,这个“模模”表示被丢掉表示被丢掉的数值。上式在数学上称为同余式。的数值。上式在数学上称为同余式。上例中其所以上例中其所以6-3和和6+9(mod12)等价,原因就是表指等价,原因就是表指针超过针超过12时,将时,将12自动丢掉,最后得到自动丢掉,最后得到15-12=3。从

15、这里。从这里可以得到一个启示,就是负数用补码表示时,可以把减法可以得到一个启示,就是负数用补码表示时,可以把减法转化为加法。这样,在计算机中实现起来就比较方便。转化为加法。这样,在计算机中实现起来就比较方便。223 补码表示法补码表示法若若整数整数的原码形式为的原码形式为012 n , 则补码表示的定义是则补码表示的定义是23n表示法:表示法:q将数转换成二进制,其中符号被忽略。将数转换成二进制,其中符号被忽略。q在数的左边补在数的左边补0,使总的位数为,使总的位数为N位。位。q如果是正数,则不需变动。如果是负数,则将如果是正数,则不需变动。如果是负数,则将各位取反,末位加各位取反,末位加1

16、。(或将最右边的所有。(或将最右边的所有0和和首次出现的首次出现的1保持不变,其余各位取反保持不变,其余各位取反 )24n例例1:用补码表示法将用补码表示法将+7存储在存储在8位存储单元中。位存储单元中。q(00000111)补补n例例2:用补码表示法将用补码表示法将-7存储在存储在8位存储单元中。位存储单元中。q(11111001)补补n例例3:用补码表示法将用补码表示法将-40存储在存储在16位存储单元中。位存储单元中。q10100001000(1111111111011000)补补25n将用补码表示的二进制数转换成十进制数:将用补码表示的二进制数转换成十进制数:q如果最左边的位为如果最左

17、边的位为0(正数)(正数)n把整个二进制数转换成十进制数。把整个二进制数转换成十进制数。n在数的最左边加上在数的最左边加上+号。号。q如果最左边的位为如果最左边的位为1(负数)(负数)n从最右边开始到第一个从最右边开始到第一个1出现,这部分保持不出现,这部分保持不变,其余的求反。变,其余的求反。n把转换过的二进制数转换成十进制数。把转换过的二进制数转换成十进制数。n在数的最左边加上在数的最左边加上-号。号。26n例例1:把把(11110110)补补转换成十进制数。转换成十进制数。q负数负数q-1027n注意:注意:二进制求补可以通过对除了从最右边的二进制求补可以通过对除了从最右边的0到到第一个

18、第一个1(包括(包括1)外所有的位取反来实现。)外所有的位取反来实现。q如果把正数求补,就得到相应的负数。如果把正数求补,就得到相应的负数。q如果把负数求补,就得到相应的正数。如果把负数求补,就得到相应的正数。q如果对一个数取两次补,就得到原来的值。如果对一个数取两次补,就得到原来的值。n应用:应用:q它是计算机中用于存储整数的标准表示法。它是计算机中用于存储整数的标准表示法。q用于整数和浮点数的算术运算。用于整数和浮点数的算术运算。q用于逻辑运算。用于逻辑运算。28例例将十进制真值将十进制真值(127,1,0,1,127)列表表示成二进制数及列表表示成二进制数及原码、反码、补码。原码、反码、

19、补码。 解解:二进制真值二进制真值及其诸码值列于下表及其诸码值列于下表,其中其中0在在原原反反中有两中有两种表示。种表示。29数据表示格式有两种数据表示格式有两种定点格式定点格式浮点格式浮点格式定点格式容许的数值范围有限,但要求的处理硬件比较简单。定点格式容许的数值范围有限,但要求的处理硬件比较简单。浮点格式容许的数值范围很大,但要求的处理硬件比较复杂。浮点格式容许的数值范围很大,但要求的处理硬件比较复杂。1.定点数的表示方法定点数的表示方法定点定点:小数点位置约定在固定的位置,不显式表示。:小数点位置约定在固定的位置,不显式表示。格式格式:012n 其中其中0为符号位为符号位定点小数定点小数

20、:小数点位于:小数点位于0和和1之间,表数范围:之间,表数范围: 0|12n 定点整数定点整数:小数点位于:小数点位于n右边,表数范围:右边,表数范围: 0|2n1目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算整数运算。1.4.3 定点数与浮点数定点数与浮点数30浮点浮点:小数点位置可在一定范围内移动。:小数点位置可在一定范围内移动。目的目的:扩大表数范围,:扩大表数范围,例如电子的质量例如电子的质量(91028克克)和太阳的质量和太阳的质量(21033克克) )相差甚远,在定点计算机中无法直接来表示这个数值

21、范围,故用浮点数表示。相差甚远,在定点计算机中无法直接来表示这个数值范围,故用浮点数表示。 浮点表示法浮点表示法:把一个数的有效数字和数的范围在计算机的一个存储:把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示,这种把数的单元中分别予以表示,这种把数的范围和精度分别表示范围和精度分别表示的方法,数的方法,数的小数点位置随比例因子的不同而在一定范围内自由浮动。的小数点位置随比例因子的不同而在一定范围内自由浮动。 任意一个十进制数任意一个十进制数 可以写成可以写成 10E.其中:其中:M :尾数,是一个纯小数。:尾数,是一个纯小数。 E :比例因子的指数,称为浮点的指数,是一个整数

22、。:比例因子的指数,称为浮点的指数,是一个整数。同样,在计算机中一个任意进制数同样,在计算机中一个任意进制数 可以写成可以写成e.m其中:其中:R :比例因子的基数,由于计算机采用的是二进计数值,:比例因子的基数,由于计算机采用的是二进计数值,所以:一般规定所以:一般规定 为为2,或,或2的整数幂的整数幂(如如8或或16)。2. 浮点数的表示方法浮点数的表示方法31一个机器浮点数由阶码和尾数及其符号位组成:一个机器浮点数由阶码和尾数及其符号位组成:尾数尾数:用定点小数表示,给出有效数字的位数决定了浮点数的表:用定点小数表示,给出有效数字的位数决定了浮点数的表示精度;示精度;阶码阶码:用整数形式

23、表示,指明小数点在数据中的位置,决定了浮:用整数形式表示,指明小数点在数据中的位置,决定了浮点数的表示范围。点数的表示范围。 浮点数的表示格式:浮点数的表示格式:格式格式1 :EsE1E2 EmMsM1 M2 Mn阶符阶符 阶码阶码 尾符尾符 尾数尾数 浮点数所表示的范围远比定点数大。假设机器中的数由浮点数所表示的范围远比定点数大。假设机器中的数由 8 位位二进制数表示二进制数表示(包括符号位包括符号位),浮点表示时,用浮点表示时,用3位表示阶码(其中位表示阶码(其中含一位符号位),含一位符号位),5位表示尾数(其中含一位符号位)。两者表示位表示尾数(其中含一位符号位)。两者表示范围的比较如下

24、表所示:范围的比较如下表所示: 32 从从上上表表看看出出,表表示示数数的的位位数数相相同同时时,浮浮点点表表示示的的范范围围比比定定点点表表示示的范围大得多。的范围大得多。 当机器字长一定时,分给阶码的位数越多,尾数占用的位数就越当机器字长一定时,分给阶码的位数越多,尾数占用的位数就越少,则数的表示范围越大。而尾数占用的位数减少,必然会减少数少,则数的表示范围越大。而尾数占用的位数减少,必然会减少数的有效数位,即影响数的精度。若阶码和尾数各占的有效数位,即影响数的精度。若阶码和尾数各占4位,只考虑绝位,只考虑绝对值,则数的表示范围是对值,则数的表示范围是21110.00121110.111。

25、即为十进制。即为十进制数数1/1024到到112。这比阶码为。这比阶码为3位时数的表示范围大得多,但尾数减位时数的表示范围大得多,但尾数减少了一位,这就使尾数的精度受到了影响。少了一位,这就使尾数的精度受到了影响。 33S E M64位浮点数位浮点数63 62 52 51 0格式格式2 :IEEE754标准标准S E M32位浮点数位浮点数31 30 23 22 0其中:其中:S符号位,符号位,0表示正,表示正,1表示负表示负;E表示阶码表示阶码M 表示尾数,表示尾数,R 默认为默认为234正上溢出正上溢出负上溢出负上溢出下溢出下溢出机器零机器零可表示的正数区可表示的正数区可表示的负数区可表示

26、的负数区 虽虽然然浮浮点点表表示示能能扩扩大大数数据据的的表表示示范范围围,但但因因为为机机器器字字长长是是有有限限,所所以以它它的的表表数数范范围围仍仍然然是是有有限限的的。如如果果在在运运算算过过程程中中,出出现现超超出出机机器器所所能能表表示示范范围围的的数数据据,绝对值太大超过表数范围称为绝对值太大超过表数范围称为溢出溢出,绝对值大小超过表数范围通常当成,绝对值大小超过表数范围通常当成机器零。机器零。35作业n二进制数二进制数11101.10101对应的十六进制数为对应的十六进制数为_,它它所对应的十进制数为所对应的十进制数为_。n十进制数十进制数85.875对应的二进制数为对应的二进制数为_,它所对,它所对应的十六进制数为应的十六进制数为_。n有符号的十进制数有符号的十进制数+45用用8位二进制数表示为位二进制数表示为_,它所对应的十六进制表示为它所对应的十六进制表示为_。n有符号的十进制数有符号的十进制数-45用用8位二进制数表示为位二进制数表示为_,它所对应的十六进制表示为它所对应的十六进制表示为_。n写出写出+45和和-45的原码、反码和补码表示。的原码、反码和补码表示。36

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号