浮点数的加减法 浮点数加减法例题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浮点数的加减法浮点数加减法例题
浮点数加减法的运算步骤
标签:
全文结束》》-05-1417:305912人阅读评论收藏举报
1、浮点加减法的运算步骤
前面已讲到,浮点数经常被写成如下的形式:
X = Mx *2Ex
其中Mx为该浮点数的尾数,一般为绝对值小于1的规格化的二进制小数,机器中多用原码形式表示。
Ex为该浮点数的阶码,一般为二进制整数,机器中多用移码表示,给出的是一个指数的幂,而该指数的底常用
2、8或16,我们这里先以2为底作例子进行讨论。
浮点加减法的运算步骤
假定有两个浮点数
X = Mx *2Ex , Y = My *2Ey
1、实现X±Y运算,要用如下五步完成:
对阶操作,即比较两个浮点数的阶码值的大小、求△E=Ex-Ey。
当其不等于零时,首先应使两个数取相同的阶码值。
其实现方法是,将原来阶码小的数的尾数右移|△E|位,其阶码值加上|△E|,即每右移一次尾数要使阶码加1,则该浮点数的值不变。
尾数右移时,对原码形式的尾数,符号位不参加移位,尾数高位补0;对补码形
式的尾数,符号位要参加右移并使自己保持不变。
为减少误差,可用
另外的线路,保留右移过程中丢掉的一到几位的高位值,供以后舍入操作使用。
实现尾数的加运算,对两个完成对阶后的浮点数执行求和操作。
规格化处理,若得到的结果不满足规格化规则,就必须把它变成规格化的数,对双符号位的补码尾数来说,就必须是001××…×或
110××…×的形式。
这里的规格化处理规则是:
、当结果尾数的两个符号位的值不同时,表明尾数运算结果溢出。
此时应使结果尾数右移一位,并使阶码的值加1,这被称为向右规格化,简称右规。
、当尾数的运算结果不溢出,但最高数值位与符号位同值,表明不满足规格化规则,此时应重复地使尾数左移、阶减减1,直到出现在最高数值位上的值与符号位的值不同为止,这是向左规格化的操作,简称左规。
舍入操作。
在执行对阶或右规操作时,会使尾数低位上的一位或多位的数值被移掉,使数值的精度受到影响,可以把移掉的几个高位的值保存起来供舍入使用。
舍入的总的原则是要有舍有入,而且尽量使舍和入的机会均等,以防止误差积累。
常用的办法
有”0”舍”1”入法,即移掉的最高位为1时则在尾数末位加1;
为0时则舍去移掉的数值。
该方案的最大误差为2-。
这样做可能又使尾数溢出,此时就要再做一次右规。
另一种方法“置1”法,即右移时,丢掉移出的原低位上的值,并把结果的最低位置成1。
该方案同样有使结果尾数变大或变小两种可能。
即舍入前尾数最低位已
为0,使其变1,对正数而言,其值变大,等于最低位入了个1。
若尾数最低位已为1,则再对其置1无实际效用,等于舍掉了丢失的尾数低位值。
判结果的正确性,即检查阶码是否溢出。
浮点数的溢出是以其阶码溢出表现出来的。
在加减运算真正结束前,要检查是否产生了溢出,若阶码正常,加运算正常结束;若阶码下溢,要置运算结果为浮点形式的机器零,若上溢,则置溢出标志。
图规格化浮点加减运算流程
看一个浮点数加法运算的实例。
假定 X=xx * , Y=2100 * 则它们的浮点表示分别为
阶符阶码数符尾数
[X]浮 = 00
010
00 11011011
[Y]浮 = 00
100
11 01010100
补码
补码
执行X+Y的过程如下:
求阶差和对阶
△ E = Ex-Ey =
[Ex]浮 +[-Ey]浮 = 00 010 +11100 =11110即△E 为-2,
X的阶码小,应使Mx右移两位,Ex加2, 得[X]浮 = 00100 00 0011011011
尾数求和
00 00110110
+11 01010100
1110001010
规格化处理
结果的符号位与最高数值位同值,应执行左规处理,结果为11 0001010110, 阶码为00 011。
舍入处理
采用0舍1入法处理,则有
11 00010101
+
1
11 00010110
判溢出
阶码符号位为00、不溢出,故得最终结果为 X+Y =全文结束》》 *
浮点加法和减法转载▼
标签:
教育分类:
版级系统开发
设有两个浮点数x和y,它们分别为:
x=2Ex·Mx
y=2Ey·My
两浮点数进行加法和减法的运算规则是
x±y=2Ey,
Ex
其中,Ex、Ey分别为x、y的阶码,Sx、Sy分别为的尾数。
完成浮点加减运算的操作过程大体分为四步:
1、0 操作数的检查;
2、比较阶码大小并完成对阶;
3、尾数进行加或减运算;
4、结果规格化并进行舍入处理。
1、0操作数检查
浮点加减运算过程比定点运算过程复杂。
如果判知两个操作数x或y中有一个数为0,即可得知运算结果而没有必要再进行后
续的一系列操作,以节省时间。
0操作数检查步骤则用来完成这一功能。
2、对阶
两浮点数进行加减,首先要看两数的阶码是否相同,即小数点位置是否对齐。
若两数阶码相同,表示小数点是对齐的,就可以进行尾数的加减运算。
反之,若两数阶码不同,表示小数点位置没有对齐,此时必须使两数的阶码相同,这个过程叫做对阶。
要对阶,首先应求出两数阶码Ex和Ey之差,即:
△x = Ex--------------本文为网络收集精选范文、公文、论文、和其他应用文档,如需本文,请下载--------------。