【计算机组成原理】浮点加减运算(简洁易懂)


title: 浮点加减运算
date: 2023-10-17
tag: 计算机组成原理


浮点加减运算

浮点加减运算一般采用补码表示的浮点加减运算。

普遍的,运算对于两个浮点数:
X = 2 m ∗ M x , Y = 2 n ∗ M y X = 2^m * M_x ,Y = 2^n*M_y X=2mMx,Y=2nMy
在运算中如果m和n相同,我们称两数同阶,加法计算时,只需将m和n相加,尾码单独进行加法计算即可,需要注意的是结果必须以规格化形式出现,因此需要规格化处理

另外,当两数的阶码不同时,我们需要进行对阶操作。

对阶

对阶的选择

显然地,我们对阶有两种情况,然而,当我们用大阶对小阶时,尾数部分左移动,高位部分被舍弃的话会对结果造成巨大影响,所以我们统一选择小阶对大阶的方法。这样我们舍去的就是较小的低位部分,对精度影响较小。

求阶位差

求m-n的值

调整尾数

  • 若m-n<0,将Mx→移动m-n位;
  • 若m-n>0,将My→移动n-m位。

注意将移动后多出的位数保留,称为保留附加位,保留附加位加入中间运算能够提高精度,在十进制运算中,我们一般也先算再取近似值,这是一样的经验。

特别地,再IEEE754标准中,通常有3个保留位,从左到右依次是保护位,舍入位,粘位;舍入位右侧有非0数,那么粘位就为1,否则为0 。

尾数运算

移位之后的尾数,按照定点数的补码加减运算法则执行加减操作。

结果规格化

上溢(右规格化)

解决:右规格化

当尾数符号位(双符号位)不同时,则表示尾数上溢出(顾名思义就是尾数向符号位进位了)。

如果符号位为10或01,将尾数位依次→移1位,阶码位加1即可;注意10右移在左边添加1。

左规格化

当尾数运算结果为11.1…或者00.0…需要左规,这个很好理解,左移直到出现11.0…或者00.1…,移动多少位,那么阶码就减多少。

舍入

末位恒置1法

如果右规多出的位数中至少存在一个1,那么无论最低位是0还是1,都变成1。

0舍1入法

如果最低位后一位是0,则舍弃,如果为1,则向末位进一。

溢出判断

当阶码为10或者01时表示溢出。

举例

1.设
X = 2 − 101 ∗ ( − 0.101011 ) , Y = 2 − 010 ∗ ( 0.001110 ) X = 2^{-101} *(-0.101011), Y = 2^{-010} *(0.001110) X=

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值