定点补码加减法运算_数据运算 浮点数表示与加减运算

目录


浮点数的表示

36305037d381d363729fa3788b44564c.png

2c1566148edcb5dfe0263e360bc9cb83.png

6935a7546a119ad0d7cd29ff644b2c14.png

浮点数加减法运算过程

由于浮点数尾数的小数点均固定在第一位数值前,可以预见浮点数的运算实质上是定点数运算。但是由于阶码的不同,尾数对应小数点位置实际是不同的,需要通过转化使小数点对齐后,才能直接进行加减运算。

浮点数加减运算大致可以分为如下几步:

  1. 对阶:使两小数点位置对齐
  2. 尾数运算:尾数进行加减运算
  3. 规格化:为增加有效数字尾数,提高运算精度,必须对其进行尾数规格化
  4. 舍入:规格化过程可能丢失有效位,需要考虑类似十进制中四舍五入的问题
  5. 溢出判断:判断结果是否溢出,保证结果准确无误

对阶

对阶目的是对齐两数的小数点,为此需求出阶差,再按小阶向大阶看齐原则,对小阶数尾数右移,每移1位对应阶码+1,直至两数阶码相等

下述样例补码表示的前两位表示正负性,00为正,11为负。

2c72931b6ee42d7592f5c7976259bb99.png

尾数运算

将对阶后的两个尾数按照定点数运算规则进行加减

81bfa7305b7e00374bb23fe2ce26bf21.png

规格化

将尾数运算后结果进行规格化,转化为规格化形式。规格化形式如下:

0765b427a6c1ae8e8423dcdfbdc9b4f1.png

不符合规格化形式尾数,需进行左规或者右规

左规:尾数左移,阶码相应减少对应左移位数

右规:尾数右移,阶码相应增加对应右移位数

注:右规过程,可能出现形式01.xx...x或10.xx...x,此时表示尾数运算结果绝对值大于1,虽然定点数运算中不允许,但浮点数运算中不算溢出,直接右规即可。

需注意特殊情况

3182d9e09501893fe32fecadd11fbad4.png

舍入

在对阶和右规过程,尾数可能丢失有效位,引起误差影响精度,为此可用舍入法提高尾数精度。常用舍入法有:0舍1入法恒置1法

117679bc8431f4e8ace89b87911df306.png

例题

e937a744458acc7a442c72820906c0bb.png

8167ea387e7cc8c533b828491f1edaab.png

溢出判断

浮点数溢出一般指需要表示的数超出表示范围,一般尾数发生的下溢按照归0处理即可,不算真正的溢出,溢出指上溢。换句话说,尾数的溢出不算是溢出,顶多是丢失精度,阶码的溢出才是真正的溢出,采用阶码溢出判断即可,本质为定点数溢出判断。

c57a7deffeba49f61f422c9f80f94528.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值