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

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

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

1、11.4 计算机中带符号数的表示方法n整数可以是正的或负的。n正整数是从0到正无穷,负整数是从负无穷到0。n为了高效地利用计算机的存储空间,人们设计开发了 两种使用广泛的整数表示法:无符号整数和有符号整 数。231.4.1 无符号整数的格式n无符号整数就是没有符号的整数(0正无穷大)。n由于计算机不可能表示范围内的所有整数,通常,计 算机都定义了一个最大无符号整数的常量。这样,无 符号整数的范围就介于0到该常量之间。n最大无符号整数取决于计算机中分配用于保存无符号 整数的二进制位数。n设N是计算机中分配用于表示一个无符号整数的二进 制位数,则无符号整数的范围为: 0(2N-1)位数范围 802

2、55 160655354n表示法:q首先将整数变成二进制数。q如果二进制位数不足N位,则在二进制数的左边补0 ,使它的总位数为N位。n举例:q将9存储在8位存储单元中。n00001001q将258存储在16位存储单元中。n00000001000000105n两类不同的计算机中无符号整数的存储十进制8位存储单 元16位存储单元70000011100000000 00000111 2341110101000000000 11101010 258溢出00000001 00000010 24760溢出01100000 10111000 1245678溢出溢出6溢出n如果试图存储一个超出所定义范围内的数

3、时而发生的 错误。n例如, 8位存储单元所能存放的无符号数的范围是: 0(28-1),即0255n如果将258存放在8位存储单元中,就会产生溢出。7n将无符号二进制数转换成十进制数:(同二进制到十 进制的转换)n例:q将00101011转换成十进制数。n32+8+2+1=438n应用:q无符号整数表示法可以提高存储的效率,因为 不必存储整数的符号,即所有的存储单元都可 以用来存储数。q只要无需用到负数,都可以用无符号整数表示 法。n计数。当计数时,不需要负数,可以从1(有 时0)开始增长。n寻址。有些计算机语言,在一个存储单元中 存储了另一个存储单元的地址。地址是从0( 存储器的第一个字节)开

4、始到整个存储器的 总字节数的正数。91.4.2 有符号数 1 原码表示法n也叫符号加绝对值表示法。n用1个二进制位表示符号(0表示正,1表示负)。n则在8位存储单元中,仅仅用7位表示数的绝对值(不带符号)。n最大的正数值仅是无符号整数最大数的一半。n注意:q在原码表示法中0有两种表示法:正数0和负数0。q在8位存储单元中:n0 00000000n0 10000000若整数的原码形式为012 n , 则原码表示的定义是10n表示的范围:位数范围8-127-0 +0+12716-32767-0 +0+32767 32-2147483647-0 +0+ 214748364711n表示法:q将数转换成

5、二进制,其中符号被忽略。q如果二进制位数不足N-1,左边补0,使总的位 数为N-1位。q如果是正数,则在左边加0(使它变为N位)。 如果是负数,则在左边加1(使它变为N位)。n注意:在原码表示中,最左边的位用于定义数的 符号。如果是0,则表示该数为正数。如果是1, 则表示该数是负数。12n例1:用原码表示法将+7存储在8位存储单元中。q(00000111)原n例2:用原码表示法将-7存储在8位存储单元中。q(10000111)原n例3:用原码表示法将-258存储在16位存储单元 中。q100000010q 000000100000010q(1000000100000010)原13n两类不同的计

6、算机中有符号整数的存储十进制8位存储单 元16位存储单元+70000011100000000 00000111 -1241111110010000000 11111100 +258溢出00000001 00000010 -24760溢出11100000 1011100014n将用原码表示的二进制数转换成十进制数:q忽略第一位(最左边位)。q把剩下的N-1位二进制数转换成十进制数。q再在数的最左边加上+号或-号。n例2:把(10111011)原转换成十进制数。q-5915n采用原码表示法的优点:简单易懂, 缺点:(1) 加法运算复杂。这是因为,当两数相加时, 如果是同号则数值相加;如果是异号,则

7、要进行减法 。而在进行减法时还要比较绝对值的大小,然后用绝 对值大的数减去绝对值小的数,最后还要给结果选择 符号。(2) 零的原码不惟一。n为了解决这些矛盾,人们找到了补码表示法。162 反码表示法n取反:将所有的0改为1,将所有的1改为0。n规定:q正数,使用原码表示法。q负数,将正数取反表示。若整数的原码形式为012 n , 则反码表示的定义是17n注意:q在反码表示法中0有两种表示法:正数0和负数0 。q在8位存储单元中:q0 00000000q0 1111111118n表示法:q将数转换成二进制,其中符号被忽略。q在数的左边补0,使总的位数为N位。q如果是正数,则不需变动。如果是负数,

8、则将 每一位取反(将0改为1,将1改为0 )。19n例1:用反码表示法将+7存储在8位存储单元中。q(00000111)反n例2:用反码表示法将-7存储在8位存储单元中。q(11111000)反n例3:用反码表示法将-258存储在16位存储单元中。q100000010q 0000000100000010q(1111111011111101)反20n将用反码表示的二进制数转换成十进制数:q如果最左边的位为0(正数)n把整个二进制数转换成十进制数。n在数的最左边加上+号。q如果最左边的位为1(负数)n把整个二进制数取反。n把转换过的二进制数转换成十进制数。n在数的最左边加上-号。n例1:把(111

9、10110)反转换成十进制数。q-921n注意:二进制反码表示法需要转换所有的位。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模数,这个“

10、模”表示被丢掉的 数值。上式在数学上称为同余式。上例中其所以6-3和6+9(mod12)等价,原因就是表指 针超过12时,将12自动丢掉,最后得到15-12=3。从这里 可以得到一个启示,就是负数用补码表示时,可以把减法 转化为加法。这样,在计算机中实现起来就比较方便。233 补码表示法若整数的原码形式为012 n , 则补码表示的定义是24n表示法:q将数转换成二进制,其中符号被忽略。q在数的左边补0,使总的位数为N位。q如果是正数,则不需变动。如果是负数,则将 各位取反,末位加1 。(或将最右边的所有0和 首次出现的1保持不变,其余各位取反 )25n例1:用补码表示法将+7存储在8位存储单

11、元中。q(00000111)补n例2:用补码表示法将-7存储在8位存储单元中。q(11111001)补n例3:用补码表示法将-40存储在16位存储单元中。q1010000000000000101000(1111111111011000)补26n将用补码表示的二进制数转换成十进制数:q如果最左边的位为0(正数)n把整个二进制数转换成十进制数。n在数的最左边加上+号。q如果最左边的位为1(负数)n从最右边开始到第一个1出现,这部分保持不 变,其余的求反。n把转换过的二进制数转换成十进制数。n在数的最左边加上-号。27n例1:把(11110110)补转换成十进制数。q负数q00001010q-102

12、8n注意:二进制求补可以通过对除了从最右边的0到 第一个1(包括1)外所有的位取反来实现。q如果把正数求补,就得到相应的负数。q如果把负数求补,就得到相应的正数。q如果对一个数取两次补,就得到原来的值。n应用:q它是计算机中用于存储整数的标准表示法。q用于整数和浮点数的算术运算。q用于逻辑运算。例将十进制真值(127,1,0,1,127)列表表示成二进制数及 原码、反码、补码。 解:二进制真值及其诸码值列于下表,其中0在原反中有两 种表示。数据表示格式有两种定点格式浮点格式定点格式容许的数值范围有限,但要求的处理硬件比较简单。 浮点格式容许的数值范围很大,但要求的处理硬件比较复杂。 1.定点数

13、的表示方法定点:小数点位置约定在固定的位置,不显式表示。格式:012n 其中0为符号位定点小数:小数点位于0和1之间,表数范围: 0|12n 定点整数:小数点位于n右边,表数范围: 0|2n1目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算 。1.4.3 定点数与浮点数浮点:小数点位置可在一定范围内移动。目的:扩大表数范围,例如电子的质量(91028克)和太阳的质量(21033克) 相差甚远,在定点计算机中无法直接来表示这个数值范围,故用浮点数表示。浮点表示法:把一个数的有效数字和数的范围在计算机的一个存储 单元中分别予以表示,这种把数的范围和精度分别表示的方法,数 的小

14、数点位置随比例因子的不同而在一定范围内自由浮动。 任意一个十进制数 可以写成 10E. 其中:M :尾数,是一个纯小数。 E :比例因子的指数,称为浮点的指数,是一个整数。同样,在计算机中一个任意进制数 可以写成e.m 其中:R :比例因子的基数,由于计算机采用的是二进计数值,所以:一般规定 为2,或2的整数幂(如8或16)。2. 浮点数的表示方法一个机器浮点数由阶码和尾数及其符号位组成:尾数:用定点小数表示,给出有效数字的位数决定了浮点数的表 示精度;阶码:用整数形式表示,指明小数点在数据中的位置,决定了浮 点数的表示范围。 浮点数的表示格式: 格式1 :EsE1E2 EmMsM1 M2 M

15、n阶符 阶码 尾符 尾数浮点数所表示的范围远比定点数大。假设机器中的数由 8 位 二进制数表示(包括符号位),浮点表示时,用3位表示阶码(其中 含一位符号位),5位表示尾数(其中含一位符号位)。两者表示 范围的比较如下表所示: 定 点 小 数浮 点 数 二进进制表示十进进制表示二进进制表示十进进制表示最小正数0.00000011/128211O.00011/128最大正数0.1111111127/1282110.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 M64位浮点数63 62 52 51

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

当前位置:首页 > 中学教育 > 教学课件

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