浮点数的表示和基本运算
软考-浮点数的知识点

软考中浮点数的知识点主要包括以下几个方面:1、浮点数的基本概念和表示方法:浮点数是一种用科学计数法表示实数的方法,主要用于计算机中对实数的近似表示。
浮点数的表示方法分为单精度和双精度,其中单精度用32位表示,双精度用64位表示。
2、浮点数的运算:浮点数在计算机中的运算包括加、减、乘、除等基本运算,同时还有取模、取整、四舍五入等高级运算。
需要注意的是,浮点数的运算可能会产生精度误差,因此在实际应用中需要谨慎处理。
3、浮点数的异常情况:浮点数在计算中可能会出现一些异常情况,比如除以0、溢出、下溢等,这些情况需要特殊处理。
4、浮点数的应用:浮点数广泛应用于科学计算、金融计算、图像处理等领域,比如地球物理学中的测量数据处理、金融学中的股票交易计算、计算机游戏中的物理引擎等。
细节:阶符、阶码和数符阶符、阶码和数符都是计算机中用于表示浮点数的重要概念。
阶符用来表示浮点数的指数部分的符号,通常为0或1,表示正数或负数。
阶码是指数部分的值,采用补码表示,其位数与精度有关。
对于单精度浮点数,阶码采用8位补码表示;对于双精度浮点数,阶码采用11位补码表示。
阶码的值由指数部分的二进制表示得到,如单精度浮点数的指数部分是8位,则阶码的范围为-127到+128,双精度浮点数的指数部分是11位,则阶码的范围为-1023到+1024。
数符用来表示浮点数的符号部分,通常为0或1,表示正数或负数。
假设有一个单精度浮点数,其二进制表示为:0 10000100 11011000000000000000000其中,第1位为数符位,0表示正数,1表示负数;接下来的8位为阶码,这个数的阶码为10000100,最后的23位为尾数,为11011000000000000000000。
阶符位指的是阶码的符号位,因为阶码可以是正数或负数,阶符位为0表示阶码为正,为1表示阶码为负。
阶码是指尾数左移或右移的位数,由于计算机中浮点数的科学计数法表示方式,阶码的范围通常是有限的,例如单精度浮点数的阶码范围为-126到127,阶码的实际值是阶符位和剩余位的组合。
浮点数的运算方法

浮点数的运算方法浮点数是计算机中一种表示实数的数据类型,其特点是可以表示带有小数部分的数字。
在进行浮点数的运算时,需要考虑到浮点数的精度问题、舍入误差以及运算顺序等因素。
浮点数的表示方法为:±m×be,其中m为尾数(即小数部分的数值),b为基数或底数,e为指数(表示位移的量)。
1.浮点数加法运算:-对两个浮点数的指数进行比较,将较小指数的浮点数的尾数左移指数之差的位数,使两个浮点数的小数点对齐。
-对齐后的尾数相加,得到一个和。
-对和进行规格化,即将结果的尾数进行处理,使其满足指定的位数限制。
-对规格化后的结果进行舍入运算,得到最终结果。
2.浮点数减法运算:-先将减数的指数调整与被减数的指数相等。
-对齐后的尾数相减,得到一个差。
-对差进行规格化和舍入运算,得到最终结果。
3.浮点数乘法运算:-将两个浮点数的指数相加,得到加法的和,并相应地调整两个浮点数的尾数。
-尾数相乘,得到一个乘积。
-对乘积进行规格化和舍入运算,得到最终结果。
4.浮点数除法运算:-将被除数的指数减去除数的指数,得到差,并相应地调整两个浮点数的尾数。
-尾数相除,得到一个商。
-对商进行规格化和舍入运算,得到最终结果。
在进行浮点数运算时需要注意一些问题:-浮点数的精度问题:由于浮点数的尾数有限位数,所以会存在精度丢失的问题。
这就意味着进行浮点数运算时,可能会出现舍入误差,导致结果有微小的偏差。
-运算顺序:浮点数的运算顺序可能会影响最终结果。
在连续进行多次浮点数运算时,可能会得到不同的结果。
这是因为浮点数的运算不满足交换律和结合律。
因此,在编程中需要谨慎选择运算顺序,以避免结果的不确定性。
-溢出和下溢问题:由于浮点数的范围限制,可能会出现溢出(结果超出浮点数的表示范围)或下溢(结果过小,无法表示)的情况。
针对这些情况,需要进行特殊处理,如返回特定的错误码或进行科学计数法表示。
在实际编程中,可以使用编程语言提供的浮点数运算库或内置函数来进行浮点数运算,以确保运算结果的准确性和可靠性。
计算机组成原理:浮点数表示及运算

6
计算机组成原理
例:对数据12310作规格化浮点数的编码,假定1位符号位,基 数为2,阶码5位,采用移码,尾数10位,采用补码。
解:12310=11110112= 0.11110110002×27 [7]移=10000+00111 = 10111 [0.1111011000]补=0.1111011000 [123]浮= 1011 1 0 11 1101 1000 = BBD8H
对阶: [△E]补= [ Ex]补-[Ey]补=00 10+ 11 11= 00 01
y向x对齐,将y的尾数右移一位,阶码加1。 [y]补=00 10,00.0101 求和: 00.1101 + 00.0101 01.0010 [x+y]补=00 10,01.0010 右归:运算结果两符号位不同,其绝对值大于1,右归。 [x+y]补= 00 11,00.1001
0.0000001 --- 0.1111111 1/128 --- 127/128 可表示2-11*0.0001 --- 211*0.1111
设阶码2位,尾数4位
0.0000001 --- 111.1
可表示2-111*0.001 --- 2111*0.111
设阶码3位,尾数3位
0.0000000001 --- 1110000
19
(4) 结果规格化 求和之后得到的数可能不是规格化了的数 , 为了增加有效数 字的位数, 提高运算精度,必须将求和的结果规格化。 ①规格化的定义:
浮点数表示及运算

计算机组成原理
15
完成浮点加减运算的操作过程大体分为: (1) 0 操作数的检查;
(2) 比较阶码大小并完成对阶; (3) 尾数进行加或减运算; (4) 结果规格化。 (5) 舍入处理。 (6) 溢出处理。
计算机组成原理
16
(1) 0 操作数检查 (2) 对阶
使二数阶码相同(即小数点位置对齐),这个过程叫作对阶。 • 先求两数阶码 Ex 和 Ey之差,即△E = Ex-Ey 若△E = 0,表示 Ex=Ey 若△E > 0, Ex>Ey 若△E < 0, Ex<Ey 通过尾数的移动来改变Ex或Ey,使其相等。
19
(4) 结果规格化 求和之后得到的数可能不是规格化了的数, 为了增加有效数 字的位数, 提高运算精度,必须将求和的结果规格化。 ①规格化的定义:
采用原码: 正数: S=0.1 ×××…× 负数: S=1.1 ×××…× 采用双符号位的补码:
对正数: 对负数:
1 S 1 2
(二进制)
S=00.1×××…× S=11.0×××…×
格式 单精度 最小值 Emin=1, M=0, 1-127 -126 1.0×2 =2 最大值 Emax=254, 254-127 f=1.1111…, 1.111…1×2 127 -23 = 2 ×(2-2 ) Emax=2046, 2046-1023 f=1.1111…,1.111…1×2 1023 -52 =2 ×(2-2 )
8位定点小数可表示的范围
0.0000001 --- 0.1111111 1/128 --- 127/128 可表示2-11*0.0001 --- 211*0.1111
设阶码2位,尾数4位
16位内存浮点计算方法

16位内存浮点计算方法引言:计算机内存中储存的数字可以是整数也可以是小数,其中小数部分的储存方式称为浮点数。
在16位内存中,浮点数的计算方法有其独特的特点和限制。
本文将介绍16位内存浮点计算的基本原理和方法,并探讨其中的一些常见问题和解决方案。
一、16位内存浮点数的表示方式16位内存可以储存的数字范围有限,因此浮点数的表示方式需要进行一定的压缩和舍入。
一种常见的16位内存浮点数表示方式是半精度浮点数(Half Precision Floating-Point),也称为IEEE 754标准的二进制16位浮点数格式。
半精度浮点数的结构如下:1位符号位 + 5位指数位 + 10位尾数位符号位用于表示数字的正负,指数位用于表示数字的大小范围,尾数位用于表示小数部分的精度。
二、16位内存浮点数的基本运算在16位内存浮点数的计算中,基本运算包括加法、减法、乘法和除法。
下面分别介绍这些运算的方法和注意事项。
1. 加法16位内存浮点数的加法运算需要考虑指数位的对齐和尾数位的进位。
具体步骤如下:- 比较两个浮点数的指数大小,将指数较小的数的尾数右移,使得两个浮点数的指数相等。
- 将两个浮点数的尾数相加,注意进位操作。
- 根据运算结果的尾数大小调整指数和尾数的值。
2. 减法16位内存浮点数的减法运算可以转换为加法运算,即将减数取负数,再进行加法运算。
3. 乘法16位内存浮点数的乘法运算需要考虑指数的相加和尾数的相乘。
具体步骤如下:- 将两个浮点数的指数相加,得到新的指数。
- 将两个浮点数的尾数相乘,得到新的尾数。
- 根据运算结果的尾数大小调整指数和尾数的值。
4. 除法16位内存浮点数的除法运算需要考虑指数的相减和尾数的相除。
具体步骤如下:- 将两个浮点数的指数相减,得到新的指数。
- 将两个浮点数的尾数相除,得到新的尾数。
- 根据运算结果的尾数大小调整指数和尾数的值。
三、16位内存浮点数的常见问题和解决方案在16位内存浮点计算中,由于数字范围的限制,常常会出现一些问题,下面介绍其中的一些常见问题和解决方案。
浮点数的用法-概述说明以及解释

浮点数的用法-概述说明以及解释1.引言1.1 概述概述部分的内容可以涵盖浮点数的基本概念、其在计算机中的重要性以及本文将要讨论的主要内容。
概述:在计算机科学中,浮点数是一种用于表示实数的数值类型。
相比整数类型,浮点数可以表示更广范围的数值,包括小数、分数以及极大或极小的数值。
浮点数的重要性在于它们广泛应用于科学计算、图形处理和工程领域等许多计算机应用中。
本文将深入探讨浮点数的基本概念以及其在计算机中的表示方法。
首先,我们将介绍浮点数的基本概念,包括浮点数的定义和特点。
然后,我们将详细解释浮点数在计算机内部是如何表示的,以及在不同计算机系统中浮点数的表示方法是否存在差异。
除此之外,本文还会探讨浮点数在实际应用中的一些场景和注意事项。
我们将介绍一些常见的浮点数应用场景,例如科学计算、金融建模和图像处理等领域。
同时,我们也会谈到使用浮点数进行计算时需要注意的一些问题,例如浮点数精度损失、舍入误差和比较运算等。
通过阅读本文,读者将能够全面了解浮点数的基本概念和计算机中的表示方法,同时也将对浮点数的应用场景和注意事项有更深入的了解。
这将有助于读者在实际编程和计算过程中更好地理解和处理浮点数,提高计算结果的准确性和可靠性。
1.2 文章结构文章结构是指文章的组织方式和框架,它有助于读者更好地理解和消化文章的内容。
在本文中,我们将介绍浮点数的用法,并以以下三个部分来构建文章结构:1. 引言:在引言部分,我们将对浮点数的用法进行概述,并介绍本文的目的和重要性。
我们将简要解释浮点数的基本概念,并阐述浮点数在计算机中的表示方法,为读者打下基础,使他们能够更好地理解和应用浮点数。
2. 正文:在正文部分,我们将详细讨论浮点数的基本概念,并解释它在计算机中的表示方法。
我们将介绍浮点数的精度和范围,并讨论浮点数的运算和舍入误差等相关问题。
此外,我们还将探讨浮点数在科学计算、图形处理、金融和物理模拟等领域中的应用场景,并提供相应的示例和实际案例,以便读者更好地理解浮点数的用法和意义。
16进制表示浮点数

16进制表示浮点数在计算机科学领域,浮点数是一种用于表示带小数部分的实数的数据类型。
它的存储和计算方式与整数不同,可以用科学计数法或者指数计数法来表示。
在计算机中,浮点数通常以二进制补码的形式存储和计算,但我们也可以使用十六进制来表示浮点数。
在十六进制中,除了0-9的十个数字外,还有A-F六个字母用于表示十进制的10-15。
浮点数的表示通常由三个部分组成:符号位、指数位和尾数位。
其中符号位用于表示正负,指数位用于表示小数点的位置,尾数位用于表示小数的具体值。
一、浮点数的表示方式在十六进制中,浮点数的表示通常采用IEEE 754标准,它定义了两种浮点数的表示方式:单精度浮点数和双精度浮点数。
单精度浮点数由32位组成,双精度浮点数由64位组成。
其中,符号位占1位,指数位占8位或11位,尾数位占23位或52位。
以单精度浮点数为例,一个浮点数可以表示为0x1.23456p+10,其中0x表示十六进制,1.23456表示尾数位的值,p+10表示指数位的值加上10。
这个浮点数可以转换为十进制表示为2293.328125。
二、浮点数的运算浮点数的运算包括加法、减法、乘法和除法等基本运算,以及开方、求幂等高级运算。
由于浮点数的表示方式和计算规则的特殊性,浮点数的运算可能会出现舍入误差。
舍入误差是由于浮点数的表示精度有限而引起的。
在浮点数运算中,由于尾数位的长度是有限的,所以在进行运算时会截断或者舍入尾数位,从而导致结果的精度损失。
这种舍入误差在一些特殊情况下可能会累积,导致计算结果与实际值之间的差异。
为了减小舍入误差的影响,我们可以采用一些优化算法和技巧。
例如,可以使用更高精度的浮点数类型进行计算,或者使用不同的计算顺序来减小误差的积累。
此外,还可以使用一些数值分析方法,如迭代法和插值法,来提高计算的精度和稳定性。
三、浮点数的应用浮点数在计算机科学和工程领域有着广泛的应用。
它们被广泛用于科学计算、图形处理、物理模拟、金融建模和人工智能等领域。
浮点数的四则运算

主要内容:
• 浮点加减运算 • 浮点乘除运算
2.7.1 浮点加减运算
1、对阶 ■ 规则:小阶对大阶。
原因:舍去尾数低位,产生误差;若丢失尾数高位,必 然导致错误。
■ 方法:求阶差。
阶差=0,不需对阶; 阶差≠0,小阶码数的尾数右移,右移次数为阶差的绝 对值,其阶码加上阶差的绝对值。
❖X-Y的结果需要右规,将尾数右移1位,阶码加1,得:[X-Y]浮 =0011;00100010,阶码未超出+Emax,∴未溢出
6
4)舍入 ❖由于X+Y是左规,结果不需要舍入; ❖X-Y为右规,若采用末位恒置1法,则
[X-Y]浮=0011;00100011。 ❖若采用0舍1入法,则结果相同。
7
2.7.2 浮点乘除运算
解先将两浮点数表示为规格化的浮点数x浮000100110101y浮0010110101101对阶求阶差e0001补0010补1111补1exey按小阶对大阶原则x的尾数右移1位阶码加1尾数舍入采用末位恒置1法则x浮00100001101162尾数求和差000110111101011011110001即xy浮0010111100013结果规格化及判溢xy的结果是非规格化的数需左规
阶码一般用补码或者移码表示。
若阶码用移码表示,则根据移码的定义可知: [Ex]移 + [Ey]移 = 2n + Ex + 2n + Ey
= 2n + (2n + Ex + Ey) = 2n + [Ex + Ey]移 若直接用移码求阶码之和,结果比两数之和的移码多 了2n,即最高位上多加了一个1. 所以,要求两数和的移码,必须将两数移码之和的最 高位(符号位)取反。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浮点数的表示和基本运算1 浮点数的表示通常,我们可以用下面的格式来表示浮点数S P M其中S是符号位,P是阶码,M是尾数对于IBM-PC而言,单精度浮点数是32位(即4字节)的,双精度浮点数是64位(即8字节)的。
两者的S,P,M所占的位数以及表示方法由下表可知S P M表示公式偏移量1823(-1)S*2(P-127)*1.M12711152(-1)S*2(P-1023)*1.M1023以单精度浮点数为例,可以得到其二进制的表示格式如下S(第31位)P(30位到23位)M(22位到0位)其中S是符号位,只有0和1,分别表示正负;P是阶码,通常使用移码表示(移码和补码只有符号位相反,其余都一样。
对于正数而言,原码,反码和补码都一样;对于负数而言,补码就是其绝对值的原码全部取反,然后加1.)为了简单起见,本文都只讨论单精度浮点数,双精度浮点数也是用一样的方式存储和表示的。
2 浮点数的表示约定单精度浮点数和双精度浮点数都是用IEEE754标准定义的,其中有一些特殊约定。
(1) 当P = 0, M = 0时,表示0。
(2) 当P = 255, M = 0时,表示无穷大,用符号位来确定是正无穷大还是负无穷大。
(3) 当P = 255, M != 0时,表示NaN(Not a Number,不是一个数)。
当我们使用.Net Framework的时候,我们通常会用到下面三个常量Console.WriteLine(float.MaxValue); // 3.402823E+38Console.WriteLine(float.MinValue); //-3.402823E+38Console.WriteLine(float.Epsilon); // 1.401298E-45//如果我们把它们转换成双精度类型,它们的值如下Console.WriteLine(Convert.ToDouble(float.MaxValue)); // 3.40282346638529E+38Console.WriteLine(Convert.ToDouble(float.MinValue)); //-3.40282346638529E+38Console.WriteLine(Convert.ToDouble(float.Epsilon)); // 1.40129846432482E-45那么这些值是如何求出来的呢?根据上面的约定,我们可以知道阶码P的最大值是11111110(这个值是254,因为255用于特殊的约定,那么对于可以精确表示的数来说,254就是最大的阶码了)。
尾数的最大值是11111111111111111111111。
那么这个最大值就是:0 11111110 11111111111111111111111。
也就是 2(254-127) * (1.11111111111111111111111)2 = 2127 * (1+1-2-23) =3.40282346638529E+38从上面的双精度表示可以看出,两者是一致的。
最小的数自然就是-3.40282346638529E+38。
对于最接近于0的数,根据IEEE754的约定,为了扩大对0值附近数据的表示能力,取阶码P = -126,尾数 M = (0.00000000000000000000001)2 。
此时该数的二进制表示为:0 00000000 00000000000000000000001也就是2-126 * 2-23 = 2-149 = 1.40129846432482E-45。
这个数字和上面的Epsilon 是一致的。
如果我们要精确表示最接近于0的数字,它应该是 0 00000001 00000000000000000000000也就是:2-126 * (1+0) = 1.17549435082229E-38。
3 浮点数的精度问题浮点数以有限的32bit长度来反映无限的实数集合,因此大多数情况下都是一个近似值。
同时,对于浮点数的运算还同时伴有误差扩散现象。
特定精度下看似相等的两个浮点数可能并不相等,因为它们的最小有效位数不同。
由于浮点数可能无法精确近似于十进制数,如果使用十进制数,则使用浮点数的数学或比较运算可能不会产生相同的结果。
如果涉及浮点数,值可能不往返。
值的往返是指,某个运算将原始浮点数转换为另一种格式,而反向运算又将转换后的格式转换回浮点数,且最终浮点数与原始浮点数相等。
由于一个或多个最低有效位可能在转换中丢失或更改,往返可能会失败。
4 将浮点数表示为二进制4.1 无小数的浮点数转换成二进制表示首先,我们用一个不带小数的浮点数来说明如何将一个浮点数转换成二进制表示。
假设要转换的数据是45678.0f。
在处理这种不带小数的浮点数时,直接将整数部分转化为二进制表示:1011001001101110.0,这时要加上一位默认的1(这是因为按照浮点数规格化的要求,尾数必须化成 1.M的格式),那么可以表示成:11011001001101110.0。
然后将小数点向左移,一直移到离最高位只有1位,也就是1.1011001001101110,一共移动了16位,我们知道,左移位表示乘法,右移位表示除法。
所以原数就等于这样:1.1011001001101110 * ( 216 )。
现在尾数和指数都出来了。
因为最高位的1是根据标准加上去的,只是为了满足规格化的要求,这时候需要把这个1去掉。
尾数的二进制就变成了:1011001001101110。
最后在尾数的后面补0,一直到补够23位,就是:10110010011011100000000。
再回来看指数,根据前面的定义,P-127=16,那么P = 143,表示成二进制就是:10001111。
45678.0f这个数是正的,所以符号位是0,那么我们按照前面讲的格式把它拼起来,就是:0 10001111 10110010011011100000000。
这就是45678.0f这个数的二进制表示,如果我们要得到16进制的表示,非常简单,我们只需要把这个二进制串4个一组,转换成16进制数就可以了。
但 是要注意的是x86架构的CP U都是Little En d ian的(也就是低位字节在前,高位字节在后),所以在实际内存中该数字是按上面二进制串的倒序存储的。
要知道CP U是不是little en d ian的也很容易。
BitConverter.IsLittleEn d ian;4.2 含小数的浮点数表示为二进制对于含小数的浮点数,会有精度的问题,下面举例说明。
假设要转换的小数为123.456f。
对于这种带小数的就需要把整数部和小数部分开处理。
对于整数部分的处理不再赘述,直接化成二进制为:100100011。
小数部份的处理比较麻烦一些,我们知道,使用二进制表示只有0和1,那么对于小数就只能用下面的方式来表示:a1*2-1+a2*2-2+a3*2-3+......+a n*2-n其中a1等数可以是0或者1,从理论上将,使用这种表示方法可以表示一个有限的小数。
但是尾数只能有23位,那么就必然会带来精度的问题。
在很多情况下,我们只能近似地表示小数。
来看0.456这个十进制纯小数,该如何表示成二进制呢?一般说来,我们可以通过乘以2的方法来表示。
首先,把这个数字乘以2,小于1,所以第一位为0,然后再乘以2,大于1,所以第二位为1,将这个数字减去1,再乘以2,这样循环下去,直到这个数字等于0为止。
在很多情况下,我们得到的二进制数字都大于23位,多于23位的就要舍去。
舍入原则是0舍1入。
通过这样的办法,我们可以得到二进制表示:1111011.01110100101111001。
现在开始向左移小数点,一共移了6位,这时候尾数为:1.11101101110100101111001,阶码为6加上127得131,二进制表示为:10000101,那么总的二进制表示为:0 10000101 11101101110100101111001表示成十六进制是:42 F6 E9 79由于CP U是Little En d ian的,所以在内存中表示为:79 E9 F6 42。
4.3 将纯小数表示成二进制对于纯小数转化为二进制来说,必须先进行规格化。
例如0.0456,我们需要把它规格化,变为1.xxxx * (2n )的形式,要求得纯小数X对应的n可用下面的公式:n = int( 1 + lo g2X )0.0456我们可以表示为1.4592乘以以2为底的-5次方的幂,即1.4592 * ( 2-5 )。
转化为这样形式后,再按照上面处理小数的方法处理,得到二进制表示1. 01110101100011100010001去掉第一个1,得到尾数01110101100011100010001阶码为:-5 + 127 = 122,二进制表示为0 01111010 01110101100011100010001最后转换成十六进制11 C7 3A 3D5 浮点数的数学运算5.1 浮点数的加减法设两个浮点数 X=Mx*2E x ,Y=M y*2E y实现X±Y要用如下5步完成:(1)对阶操作:小阶向大阶看齐(2)进行尾数加减运算(3)规格化处理:尾数进行运算的结果必须变成规格化的浮点数,对于双符号位(就是使用00表示正数,11表示负数,01表示上溢出,10表示下溢出)的补码尾数来说,就必须是001×××…×× 或110×××…××的形式若不符合上述形式要进行左规或右规处理。
(4)舍入操作:在执行对阶或右规操作时常用“0”舍“1”入法将右移出去的尾数数值进行舍入,以确保精度。
(5)判结果的正确性:即检查阶码是否溢出若阶码下溢(移码表示是00…0),要置结果为机器0;若阶码上溢(超过了阶码表示的最大值)置溢出标志。
现在用一个具体的例子来说明上面的5个步骤例题:假定X=0 .0110011*211,Y=0.1101101*2-10(此处的数均为二进制), 计算X+Y;首先,我们要把这两个数变成2进制表示,对于浮点数来说,阶码通常用移码表示,而尾数通常用补码表示。
要注意的是-10的移码是00110[X]浮: 0 1 010 *******[Y]浮: 0 0 110 1101101符号位 阶码 尾数(1)求阶差:│ΔE│=|1010-0110|=0100(2)对阶:Y的阶码小,Y的尾数右移4位[Y]浮变为 0 1 010 ******* 1101暂时保存(3)尾数相加,采用双符号位的补码运算00 1100110+00 000011000 1101100(4)规格化:满足规格化要求(5)舍入处理,采用0舍1入法处理故最终运算结果的浮点数格式为: 0 1 010 *******即X+Y=+0. 1101101*2105.2 浮点数的乘除法(1)阶码运算:阶码求和(乘法)或阶码求差(除法)即 [Ex+E y]移= [Ex]移+ [E y]补[Ex-E y]移= [Ex]移+ [-E y]补(2)浮点数的尾数处理:浮点数中尾数乘除法运算结果要进行舍入处理例题:X=0 .0110011*211,Y=0.1101101*2-10 求X*Y解:[X]浮: 0 1 010 *******[Y]浮: 0 0 110 1101101(1)阶码相加[Ex+E y]移=[Ex]移+[E y]补=1 010+1 110=1 0001 000为移码表示的0(2)原码尾数相乘的结果为:0 10101101101110(3)规格化处理:已满足规格化要求,不需左规,尾数不变,阶码不变。