大学计算机基础1.4计算机中带符号数的表示方法.ppt_第1页
大学计算机基础1.4计算机中带符号数的表示方法.ppt_第2页
大学计算机基础1.4计算机中带符号数的表示方法.ppt_第3页
大学计算机基础1.4计算机中带符号数的表示方法.ppt_第4页
大学计算机基础1.4计算机中带符号数的表示方法.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

VIP免费下载

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

文档简介

1 1.4 计算机中带符号数的表示方法 n整数可以是正的或负的。 n正整数是从0到正无穷,负整数是从负无穷到0。 n为了高效地利用计算机的存储空间,人们设计开发了 两种使用广泛的整数表示法:无符号整数和有符号整 数。 2 3 1.4.1 无符号整数的格式 n无符号整数就是没有符号的整数(0正无穷大)。 n由于计算机不可能表示范围内的所有整数,通常,计 算机都定义了一个最大无符号整数的常量。这样,无 符号整数的范围就介于0到该常量之间。 n最大无符号整数取决于计算机中分配用于保存无符号 整数的二进制位数。 n设N是计算机中分配用于表示一个无符号整数的二进 制位数,则无符号整数的范围为: 0(2N-1) 位数范围 80255 16065535 4 n表示法: q首先将整数变成二进制数。 q如果二进制位数不足N位,则在二进制数的左边补0 ,使它的总位数为N位。 n举例: q将9存储在8位存储单元中。 n00001001 q将258存储在16位存储单元中。 n0000000100000010 5 n两类不同的计算机中无符号整数的存储 十进制8位存储单 元 16位存储单元 70000011100000000 00000111 2341110101000000000 11101010 258溢出00000001 00000010 24760溢出01100000 10111000 1245678溢出溢出 6 溢出 n如果试图存储一个超出所定义范围内的数时而发生的 错误。 n例如, 8位存储单元所能存放的无符号数的范围是: 0(28-1),即0255 n如果将258存放在8位存储单元中,就会产生溢出。 7 n将无符号二进制数转换成十进制数:(同二进制到十 进制的转换) n例: q将00101011转换成十进制数。 n32+8+2+1=43 8 n应用: q无符号整数表示法可以提高存储的效率,因为 不必存储整数的符号,即所有的存储单元都可 以用来存储数。 q只要无需用到负数,都可以用无符号整数表示 法。 n计数。当计数时,不需要负数,可以从1(有 时0)开始增长。 n寻址。有些计算机语言,在一个存储单元中 存储了另一个存储单元的地址。地址是从0( 存储器的第一个字节)开始到整个存储器的 总字节数的正数。 9 1.4.2 有符号数 1 原码表示法 n也叫符号加绝对值表示法。 n用1个二进制位表示符号(0表示正,1表示负)。 n则在8位存储单元中,仅仅用7位表示数的绝对值(不带符号)。 n最大的正数值仅是无符号整数最大数的一半。 n注意: q在原码表示法中0有两种表示法:正数0和负数0。 q在8位存储单元中: n0 00000000 n0 10000000 若整数的原码形式为012 n , 则原码表示的定义是 10 n表示的范围: 位数范围 8-127-0 +0+127 16-32767-0 +0+32767 32-2147483647-0 +0+ 2147483647 11 n表示法: q将数转换成二进制,其中符号被忽略。 q如果二进制位数不足N-1,左边补0,使总的位 数为N-1位。 q如果是正数,则在左边加0(使它变为N位)。 如果是负数,则在左边加1(使它变为N位)。 n注意:在原码表示中,最左边的位用于定义数的 符号。如果是0,则表示该数为正数。如果是1, 则表示该数是负数。 12 n例1:用原码表示法将+7存储在8位存储单元中。 q(00000111)原 n例2:用原码表示法将-7存储在8位存储单元中。 q(10000111)原 n例3:用原码表示法将-258存储在16位存储单元 中。 q100000010 q 000000100000010 q(1000000100000010)原 13 n两类不同的计算机中有符号整数的存储 十进制8位存储单 元 16位存储单元 +70000011100000000 00000111 -1241111110010000000 11111100 +258溢出00000001 00000010 -24760溢出11100000 10111000 14 n将用原码表示的二进制数转换成十进制数: q忽略第一位(最左边位)。 q把剩下的N-1位二进制数转换成十进制数。 q再在数的最左边加上+号或-号。 n例2:把(10111011)原转换成十进制数。 q-59 15 n采用原码表示法的优点:简单易懂, 缺点:(1) 加法运算复杂。这是因为,当两数相加时, 如果是同号则数值相加;如果是异号,则要进行减法 。而在进行减法时还要比较绝对值的大小,然后用绝 对值大的数减去绝对值小的数,最后还要给结果选择 符号。 (2) 零的原码不惟一。 n为了解决这些矛盾,人们找到了补码表示法。 16 2 反码表示法 n取反:将所有的0改为1,将所有的1改为0。 n规定: q正数,使用原码表示法。 q负数,将正数取反表示。 若整数的原码形式为012 n , 则反码表示的定义是 17 n注意: q在反码表示法中0有两种表示法:正数0和负数0 。 q在8位存储单元中: q0 00000000 q0 11111111 18 n表示法: q将数转换成二进制,其中符号被忽略。 q在数的左边补0,使总的位数为N位。 q如果是正数,则不需变动。如果是负数,则将 每一位取反(将0改为1,将1改为0 )。 19 n例1:用反码表示法将+7存储在8位存储单元中。 q(00000111)反 n例2:用反码表示法将-7存储在8位存储单元中。 q(11111000)反 n例3:用反码表示法将-258存储在16位存储单元中。 q100000010 q 0000000100000010 q(1111111011111101)反 20 n将用反码表示的二进制数转换成十进制数: q如果最左边的位为0(正数) n把整个二进制数转换成十进制数。 n在数的最左边加上+号。 q如果最左边的位为1(负数) n把整个二进制数取反。 n把转换过的二进制数转换成十进制数。 n在数的最左边加上-号。 n例1:把(11110110)反转换成十进制数。 q-9 21 n注意:二进制反码表示法需要转换所有的位。 q如果把正数取反,就得到相应的负数。 q如果把负数取反,就得到相应的正数。 q如果对一个数取两次反,就得到原来的值。 n应用: q它是二进制补码的基础。 3 补码表示法 我们先以钟表对时为例说明补码的概念。假设现在的标准 时间为3点正; 而有一只表已经6点了,为了校准时间, 可以采用两种方法:一是将时针退 6-3=3 格;一是将时针 向前拨12-3=9格。这两种方法都能对准到3点,由此可以 看出,减3和加9是等价的,就是说9是(-3)对12的补码, 可以用数学公式表示 -3+9(mod12) mod12的意思就是12模数,这个“模”表示被丢掉的 数值。上式在数学上称为同余式。 上例中其所以6-3和6+9(mod12)等价,原因就是表指 针超过12时,将12自动丢掉,最后得到15-12=3。从这里 可以得到一个启示,就是负数用补码表示时,可以把减法 转化为加法。这样,在计算机中实现起来就比较方便。 23 3 补码表示法 若整数的原码形式为012 n , 则补码表示的定义是 24 n表示法: q将数转换成二进制,其中符号被忽略。 q在数的左边补0,使总的位数为N位。 q如果是正数,则不需变动。如果是负数,则将 各位取反,末位加1 。(或将最右边的所有0和 首次出现的1保持不变,其余各位取反 ) 25 n例1:用补码表示法将+7存储在8位存储单元中。 q(00000111)补 n例2:用补码表示法将-7存储在8位存储单元中。 q(11111001)补 n例3:用补码表示法将-40存储在16位存储单元中。 q1010000000000000101000(1111111111011000)补 26 n将用补码表示的二进制数转换成十进制数: q如果最左边的位为0(正数) n把整个二进制数转换成十进制数。 n在数的最左边加上+号。 q如果最左边的位为1(负数) n从最右边开始到第一个1出现,这部分保持不 变,其余的求反。 n把转换过的二进制数转换成十进制数。 n在数的最左边加上-号。 27 n例1:把(11110110)补转换成十进制数。 q负数 q00001010 q-10 28 n注意:二进制求补可以通过对除了从最右边的0到 第一个1(包括1)外所有的位取反来实现。 q如果把正数求补,就得到相应的负数。 q如果把负数求补,就得到相应的正数。 q如果对一个数取两次补,就得到原来的值。 n应用: q它是计算机中用于存储整数的标准表示法。 q用于整数和浮点数的算术运算。 q用于逻辑运算。 例将十进制真值(127,1,0,1,127)列表表示成二进制数及 原码、反码、补码。 解: 二进制真值及其诸码值列于下表,其中0在原反中有两 种表示。 数据表示格式有两种 定点格式 浮点格式 定点格式容许的数值范围有限,但要求的处理硬件比较简单。 浮点格式容许的数值范围很大,但要求的处理硬件比较复杂。 1.定点数的表示方法 定点:小数点位置约定在固定的位置,不显式表示。 格式:012n 其中0为符号位 定点小数:小数点位于0和1之间,表数范围: 0|12n 定点整数:小数点位于n右边,表数范围: 0|2n1 目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算 。 1.4.3 定点数与浮点数 浮点:小数点位置可在一定范围内移动。 目的:扩大表数范围,例如电子的质量(91028克)和太阳的质量(21033克) 相差甚远,在定点计算机中无法直接来表示这个数值范围,故用浮点数表示。 浮点表示法:把一个数的有效数字和数的范围在计算机的一个存储 单元中分别予以表示,这种把数的范围和精度分别表示的方法,数 的小数点位置随比例因子的不同而在一定范围内自由浮动。 任意一个十进制数 可以写成 10E. 其中:M :尾数,是一个纯小数。 E :比例因子的指数,称为浮点的指数,是一个整数。 同样,在计算机中一个任意进制数 可以写成e.m 其中:R :比例因子的基数,由于计算机采用的是二进计数值, 所以:一般规定 为2,或2的整数幂(如8或16)。 2. 浮点数的表示方法 一个机器浮点数由阶码和尾数及其符号位组成: 尾数:用定点小数表示,给出有效数字的位数决定了浮点数的表 示精度; 阶码:用整数形式表示,指明小数点在数据中的位置,决定了浮 点数的表示范围。 浮点数的表示格式: 格式1 : EsE1E2 EmMsM1 M2 Mn 阶符 阶码 尾符 尾数 浮点数所表示的范围远比定点数大。假设机器中的数由 8 位 二进制数表示(包括符号位),浮点表示时,用3位表示阶码(其中 含一位符号位),5位表示尾数(其中含一位符号位)。两者表示 范围的比较如下表所示: 定 点 小 数 浮 点 数 二进进制表示十进进制表示二进进制表示十进进制表示 最小正数0.00000011/128 211O.00011/128 最大正数0.1111111127/128 2110.11117.5 最小负负数 0.1111111127/128211(0.1111)7.5 最大负负数 0.00000011/128211(0.0001)1/128 从上表看出,表示数的位数相同时,浮点表示的范围比定点表示 的范围大得多。 当机器字长一定时,分给阶码的位数越多,尾数占用的位数就越 少,则数的表示范围越大。而尾数占用的位数减少,必然会减少数 的有效数位,即影响数的精度。若阶码和尾数各占4位,只考虑绝 对值,则数的表示范围是21110.00121110.111。即为十进制数 1/1024到112。这比阶码为3位时数的表示范围大得多,但尾数减少 了一位,这就使尾数的精度受到了影响。 S E M 64位浮点数 63 62 52 51 0 格式2 :IEEE754标准 S E M 32位浮点数 31 30 23 22 0 其中:S符号位,0表示正,1表示负; E表示阶码 M 表示尾数,R 默认为2 正上溢出负上溢出 下溢出 机器零 可表示的正数区可表示的负数区 虽然浮点表示能扩大数据的表示范围,但因为机器字长是

温馨提示

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

评论

0/150

提交评论