浮点数计算方法.ppt
《浮点数计算方法.ppt》由会员分享,可在线阅读,更多相关《浮点数计算方法.ppt(164页珍藏版)》请在咨信网上搜索。
1、第二章 运算方法和运算器2.1数据与文字的表示方法2.2定点加法、减法运算2.3定点乘法运算2.4 定点除法运算2.5定点运算器的组成2.6浮点运算方法和浮点运算器2.1数据与文字的表示方法 2.1.1 2.1.1 数据格式数据格式计算机中常用的数据表示格式有两种:1 1 定点格式定点格式 2 2 浮点格式浮点格式 一般来说,定点格式容许的数值范围有限,但要求的处理硬件比较简单。而浮点格式容许的数值范围很大,但要求的处理硬件比较复杂。1.定点数的表示方法定点数的表示方法定点表示定点表示:约定机器中所有数据的小数点位置是固定不变的。由于约定在固定的位置,小数点就不再使用记号“.”来表示。通常将数
2、据表示成纯小数纯小数或纯整数纯整数。定点数012n在定点机中表示如下(0:符号位,0代表正号,1代表负号):纯小数纯小数的表示范围为(012n各位均为0时最小;各位均为1时最大)0|12n(2.1)纯整数纯整数的表示范围为0|2n1(2.2)目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算整数运算。电子的质量(91028克)和太阳的质量(21033克)相差甚远,在定点计算机中无法直接来表示这个数值范围.要使它们送入定点计算机进行某种运算,必须对它们分别取不同的比例因子,使其数值部分绝对值小于1,即:910280.91027210330.21034这里的比例因子1027和1
3、034要分别存放在机器的某个存储单元中,以便以后对计算结果按这个比例增大。显然这要占用一定的存储空间和运算时间。因此得到浮点表示法如下:2.浮点数的表示方法浮点数的表示方法浮点表示法浮点表示法:把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示,这种把数的范围和精度分别表示的方法,相当于数的小数点位置随比例因子的不同而在一定范围内自由浮动,称为浮点表示法。任意一个十进制数可以写成10E.(2.3)同样在计算机中一个任意进制数可以写成e.(2.4):尾数尾数,是一个纯小数。e:比例因子的指数,称为浮点数的指数指数,是一个整数。R:比例因子的基数基数,对于二进计数值的机器是一个常数,
4、一般规定为2,8或16。一个机器浮点数由阶码和尾数及其符号位组成(尾数尾数:用定点小数表示,给出有效数字的位数决定了浮点数的表示精度;阶码阶码:用整数形式表示,指明小数点在数据中的位置,决定了浮点数的表示范围。):32位浮点数的IEEE754标准格式为:64位浮点数的IEEE754标准格式为:在IEEE754标准格式表示的32位浮点数中,:浮点数的符号位,1位,0表示正数,1表示负数。:尾数,23位,用小数表示,小数点放在尾数域的最前面。:阶码,8位阶符采用隐含方式,即采用移码方式来表示正负指数。移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。采用这种方式时,将
5、浮点数的指数真值e 变成阶码 时,应将指数e加上一个固定的偏移值127(01111111),即e127.IEEE754标准中,一个规格化规格化的32位浮点数的真值可表示为(1)s(1.)2127e127一个规格化的64位浮点数的真值为(1)s(1.)21023e1023为提高数据的表示精度,当尾数的值不为0时,尾数域的最高有效位应为1,否则以修改阶码同时左右移小数点的办法,使其变成这一表示形式,这称为浮点数的规格化表示规格化表示。当浮点数的尾数为0,不论其阶码为何值,或者当阶码阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,称为机器零机器零。当阶码E为全0且
6、尾数M也为全0时,表示的真值x为零,结合符号位S为0或1,有正零和负零之分。当阶码E为全1且尾数M为全0时,表示的真值x为无穷大,结合符号位S为0或1,也有+和-之分。这样在32位浮点数表示中,要除去E用全0和全1(255)10表示零和无穷大的特殊情况,指数的偏移值不选128(10000000),而选127(01111111)。对于规格化浮点数,E的范围变为1到254,真正的指数值e则为-126到+127。因此32位浮点数表示的绝对值的范围是10-381038(以10的幂表示)。浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微
7、机以上的计算机中同时采用定点、浮点表示,由使用者进行选择,而单片机中多采用定点表示。例例1 若浮点数的754标准存储格式为(41360000)16,求其浮点数的十进制数值。例例2将(20.59375)10转换成754标准的32位浮点数的二进制存储格式。例例1 若浮点数的754标准存储格式为(41360000)16,求其浮点数的十进制数值。解解:将十六进制数展开后,可得二进制数格式为指数e阶码127100000100111111100000011=(3)10包括隐藏位1的尾数1.M1.011011000000000000000001.011011于是有(1)s1.M2e(1.011011)231
8、011.011(11.375)10例例2将(20.59375)10转换成754标准的32位浮点数的二进制存储格式。解解:首先分别将整数和分数部分转换成二进制数:20.5937510100.10011然后移动小数点,使其在第1,2位之间10100.100111.01001001124e4于是得到:S0,E4127131,M010010011最后得到32位浮点数的二进制存储格式为:01000001101001001100000000000000(41A4C000)163.十进制数串的表示方法十进制数串的表示方法目前,大多数通用性较强的计算机都能直接处理十进制形式表示的数据。十进制数串在计算机内主要
9、有两种表示形式:(1)字符串形式字符串形式:一个字节存放一个十进制的数位或符号位。为了指明这样一个数,需要给出该数在主存中的起始地址和位数(串的长度)。(2)压缩的十进制数串形式压缩的十进制数串形式:一个字节存放两个十进制的数位。它比前一种形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。4.自定义数据表示自定义数据表示在传统的计算机体系结构中,用指令本身来说明操作数据的类型。如定点加法表示操作数是纯小数或纯整数;浮点加法表示操作数是浮点数;十进制加法表示操作数是BCD数。由于操作数据类型不同,要设三种不同的指令(操作码)来加以区分。自定义数据表示则用数据本身来说
10、明数据类型。表示形式有两种,即标志符数据表示标志符数据表示和描述符数据表示描述符数据表示。描述符数据表示主要用来描述多维结构的数据类型,如向量、矩阵、记录等。描述符标志位部分指明这是一个数据描述符;特征标记部分指明数据的各种特征;长度部分指明数组中元素个数;起始地址部分指明数据块的首地址。其格式为:标志符数据表示要求对每一个数据都附加标志符。其指明后面的数据所具有的类型,如整数、浮点数、BCD数、字符串等,其格式如下:标识符数据描述符标志位 特征标记 数据块长度 数据块起始地址2.1.2 数的机器码表示数的机器码表示 在计算机中对数据进行运算操作时,为了妥善的处理好符号位问题,就产生了把符号位
11、和数字位一起编码来表示相应的数的各种表示方法,如原码、补码、反码、移码等。为了区别一般书写表示的数和机器中这些编码表示的数,通常将前者称为真值,后者称为机器数或机器码。常用的机器码表示法:1.原码表示法2.补码表示法3.反码表示法4.移码表示法1.原码表示法原码表示法若定点小数的原码形式为0.12n,则原码表示的定义是:10原11|01式中原是机器数,是真值若定点整数的原码形式为012n,则原码表示的定义是2n0原2n2n|02n对于0,原码机器中往往有“+0”、“-0”之分,故有两种形式:+0原=0.000.0-0原=1.000.0采用原码表示法简单易懂,但它的最大缺点是加法运算复杂。这是因
12、为,当两数相加时,如果是同号则数值相加;如果是异号,则要进行减法。而在进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。为了解决这些矛盾,人们找到了补码表示法。2.补码表示法补码表示法我们先以钟表对时为例说明补码的概念。假设现在的标准时间为4点正;而有一只表已经7点了,为了校准时间,可以采用两种方法:一是将时针退7-4=3格;一是将时针向前拨12-3=9格。这两种方法都能对准到4点,由此可以看出,减3和加9是等价的,就是说9是(-3)对12的补码,可以用数学公式表示:-3+9(mod12)mod12的意思就是12模数,这个“模”表示被丢掉的数值。上式在数学上称为同余式。
13、上例中其所以7-3和7+9(mod12)等价,原因就是表指针超过12时,将12自动丢掉,最后得到16-12=4。从这里可以得到一个启示,就是负数用补码表示时,可以把减法转化为加法。这样,在计算机中实现起来就比较方便。73=47+9=4以12取模数(mod12)-3=+9(mod12)采用补码表示法进行减法运算就比原码方便得多了。因为不论数是正还是负,机器总是做加法,减法运算可变为加法运算。关键是我们需要换算出两个操作数的补码表示。若定点小数补码形式为0.12n,则补码表示的定义是:10补22|01(mod2)若定点整数补码形式为012n,则补码表示的定义是:2n0补2n+1+2n+1|02n(
14、mod2n1)根据补码定义,求负数的补码要从2减去|x|。为了用加法代替减法,结果还得在求补码时作一次减法,这显然是不方便的。下面介绍的反码表示法可以解决负数的求补问题。3.反码表示法反码表示法所谓反码,就是二进制的各位数码0变为1,1变为0。也就是说,若Xi=1,则反码为xi=0;若xi=0,则反码xi=1。数值上面的一横表示反码的意思。在计算机中用触发器寄存数码,若触发器Q端输出表示原码,则其Q端输出就是反码。由此可知,反码是容易得到的。若定点小数反码形式为0.12n,则反码表示的定义是:10反(22-n)01一般情况下,对正数和负数的值,0.12n,则反0.12n0.12n,则反1.12
15、n若定点整数反码形式为012n,则反码表示的定义是:2n0反(2n+11)02n我们比较反码与补码的公式,对于负数有:定点小数反(22n)补2可得到补反2n定点整数反(2n+11)补2n+1+可得到补反1这就是通过反码求补码的重要公式。这个公式告诉我们,若要一个负数变补码,其方法是符号位置1,其余各位0变1,1变0,然后在最末位(2-n)上加1。4.移码表示法移码表示法移码通常用于表示浮点数的阶码。由于阶码是个n位的整数,假定定点整数移码形式为012n时,对定点整数移码的传统定义是:移2n2n2n若阶码数值部分为5位,以表示真值,则:移252525小结:小结:上面的数据四种机器表示法中,移码表
16、示法主要用于表示浮点数的阶码。由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中,数用补码表示,补码存储,补码运算。也有些机器,数用原码进行存储和传送,运算时改用补码。还有些机器在做加减法时用补码运算,在做乘除法时用原码运算。例例5设机器字长16位,定点表示,尾数15位,数符1位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?;解解:(1)定点原码整数表示最大正数值(2151)10(32767)10最小负数值(2151)10(32767)10(2)定点原码小数表示最大正数值(1215)10(
17、0.111.11)2最小负数值(1215)10(0.111.11)201111111111111111111111111111111例例6假设由S,E,M三个域组成的一个32位二进制数所表示的非零规格化浮点数,真值表示为:(1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?解解:(1)最大正数1(12-23)2127(2)最小正数1.02128(3)最小负数1(1223)2127(4)最大负数1.021280 11111111111111111111111111111110 00000000000000000000000000000001 11111
18、111111111111111111111111111 0000000000000000000000000000000例例7 若机器使用8位表示定点数,将数x100/100,y0.59375/0.59375分别转换为各种机器码形式。解解:已知数据位数为8位,最高位为符号位,数据表示范围可用7位,那么定点整数的范围是:0|127(271)定点小数的范围是:0|0.9921875(127)(100)10=(1100100)2(0.59375)10=(0.10011)2+1100100原=01100100-1100100原=11100100+1100100反=01100100-1100100反=10
19、011011+1100100补=01100100-1100100补=10011100+0.10011原=01001100-0.10011原=11001100+0.10011反=01001100-0.10011反=10110011+0.10011补=01001100-0.10011补=101101002.1.3 字符与字符串的表示方法字符与字符串的表示方法1.字符的表示方法字符的表示方法现代计算机不仅处理数值领域的问题,而且处理大量非数值领域的问题。这样一来,必然要引入文字、字母以及某些专用符号,以便表示文字语言、逻辑语言等信息。目前国际上普遍采用的字符系统是七单位的ASCII码(美国国家信息交
20、换标准字符码),它包括10个十进制数码,26个英文字母和一定数量的专用符号,如$,%,等,共128个元素,因此二进制编码需7位,加一位偶校验位,共8位一个字节。参见书中表2.1的ASCII码字符编码表。2.字符串字符串 字符串字符串是指连续的一串字符,通常方式下,它们占用主存中连续的多个字节,每个字节存一个字符。当主存字由2个或4个字节组成时,在同一个主存字中,既可按从低位字节向高位字节的顺序存放字符串的内容,也可按从高位字节向低位字节的次序顺序存放字符串的内容。例例 将下面字符串从高位字节到低位字节依次存在主存中。IFABTHENREAD(C)2.1.4 汉字的表示方法汉字的表示方法1.汉字
21、的输入编码汉字的输入编码 当前采用的方法主要有以下三类:数字编码数字编码常用的是国标区位码,用数字串代表一个汉字输入。区位码是将国家标准局公布的6763个两级汉字分为94个区,每个区分94位,实际上把汉字表示成二维数组,每个汉字在数组中的下标就是区位码。区码和位码各两位十进制数字,因此输入一个汉字需按键四次。数字编码输入的优点是无重码,且输入码与内部编码的转换比较方便,缺点是代码难以记忆。拼音码拼音码拼音码是以汉字拼音为基础的输入方法。使用简单方便,但汉字同音字太多,输入重码率很高,同音字选择影响了输入速度。字形编码字形编码字形编码是用汉字的形状来进行的编码。把汉字的笔划部件用字母或数字进行编
22、码,按笔划的顺序依次输入,就能表示一个汉字。2.汉字内码汉字内码汉字内码汉字内码是用于汉字信息的存储、交换、检索等操作的机内代码,一般采用两个字节表示。英文字符的机内代码是七位的ASCII码,当用一个字节表示时,最高位为“0”。为了与英文字符能相互区别,汉字机内代码中两个字节的最高位均规定为“1”。注意:注意:有些系统中字节的最高位用于奇偶校验位,这种情况下用三个字节表示汉字内码。3.汉字字模码汉字字模码字模码字模码是用点阵表示的汉字字形代码,它是汉字的输出形式。字模点阵只能用来构成汉字库汉字库,用于汉字的显示输出或打印输出。注意,汉字的输入编码、汉字内码、字模码是计算机中用于输入、内部处理、
23、输出三种不同用途的编码,不要混为一谈。图2.1汉字的字模点阵及编码2.1.5 校验码校验码元件故障/噪声干扰等各种因素常导致计算机在处理信息过程中出现错误。为了防止错误可将信号采用专门的逻辑线路进行编码以检测错误,甚至校正错误。通常的方法是在每个字上添加一些校验位,用来确定字中出现错误的位置。最简单且应用广泛的检错码是采用一位校验位的奇校验奇校验或偶校验偶校验。设(01n-1)是一个n位字,则奇校验位奇校验位定义为C01n-1同理偶校验位偶校验位定义为C01n-12.2定点加法、减法运算2.2.1 补码加法补码加法负数用补码表示后,可以和正数一样来处理。这样,运算器里只需要一个加法器就可以了,
24、不必为了负数的加法运算,再配一个减法器。补码加法的公式是补补补 (mod2)现分四种情况来证明。假设采用定点小数表示,因此证明的先决条件是 1,1,1。(1)0,0,则0。相加两数都是正数,故其和也一定是正数。正数的补码和原码是一样的,可得:补补补(mod2)(2)0,0,则0或0时,2()2,进位2必丢失,又因()0,故补补补(mod2)当0时,2()2,又因()0,故补补2()补(mod2)(3)0,则0或0。这种情况等同于第2种情况。(4)0,0,则0。相加两数都是负数,则其和也一定是负数。补2,补2补补222(2)上式右边分为”2”和(2)两部分.既然()是负数,而其绝对值又小于1,那
25、么(2)就一定是小于2而大于1的数,进位”2”必丢失.又因()0,所以补补2()补(mod2)至此我们证明了,在模2意义下,任意两数的补码之和等于该两数之和的补码.这是补码加法的理论基础,其结论也适用于定点整数。例例8 0.1001,0.0101,用补码求解解:补0.1001,补0.0101补0.1001补0.0101补0.1110 所以0.1110 例例990.1011,0.0101,用补码求。解解:补0.1011,补1.1011补0.1011补1.1011补10.0110所以0.0110由以上两例看到,补码加法的特点,一是符号位要作为数的一部分一起参加运算,二是要在模2的意义下相加,即超过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浮点 计算方法
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【1587****927】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【1587****927】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。