计组 -浮点数的表示与运算

首先需要明确的是浮点数的组成,浮点数由阶码和尾数两部分组成
其中阶码又分为阶符和数值部分,阶码J和阶码的位数m共同反应浮点数的表示范围以及小数点的实际位置;尾数由数符和数值部分组成,数符代表浮点数的符号,尾数的数值部分反映浮点数的精度
在这里插入图片描述总结来说阶码E反映浮点数的表示范围及小数点的实际位置
尾数M的数值部分反映浮点数的精度
阶码和尾数的表示:
阶码:常用补码或移码表示的定点整数
尾数:常用原码或补码表示的定点小数
浮点数的真值:N=r^E*M,其中r为阶码的底,通常为2

了解浮点数的组成之后再来谈谈什么是浮点数尾数的规格化?
我们先类比十进制的科学计数法,我们在用科学计数法表示是尾数的最高位如果是0也就是无效值的话会丧失精度,因为尾数的最高位是0的话是没有任何意义的
在这里插入图片描述这种思想就是十进制科学计数法的规格化,现在我们将这种思想运用到二进制浮点数的表示中,就来到了浮点数尾数的规格化这一模块的知识:
浮点数的规格化规定了尾数的最高数值位必须是一个有效值,而规格化一个浮点数就是指通过调整一个非规格化浮点数的尾数和阶码的大小,保证在尾数的最高数值位上是一个有效值,有两种规格化的方法:
左规:将尾数算数左移一位,阶码减1
右规:当浮点数运算的结果尾数出现溢出(双符号位为01或10)时,将尾数算数右移一位,阶码加1
(尾数的基数为2时)
1.原码规格化后,最高数值位一定是1
2.补码规格化后,符号位与最高数值位一定相反 注:补码算数左移,低位补0;算数右移,高位补1

(当基数为4时,原码规格化后的尾数最高两位不全为0,当基数为8时,原码规格化后的尾数最高3位不全为0)

浮点数的表示主要用的是IEEE标准
在这里插入图片描述因为IEEE754的阶码部分用的是移码表示,所以我们先回顾一下移码的概念,在我们学习原码,反码,补码和移码的时候,对于移码给出的定义是:在补码的基础上将符号位取反(移码只能表示整数),移码真正的定义为:移码=真值-偏置值
例如:
在这里插入图片描述在IEEE754标准中,偏置值等于127D=01111111B
需要特别注意的是,对于规格化的二进制浮点数,数值的最高位总是“1”,为了能使尾数多表示一位有效数字,将这个“1”隐含

一些阶码的特殊情况:
在这里插入图片描述接下来就是浮点数的加减运算部分了
浮点数的加减有对阶,尾数加减,规格化,舍入,判溢出五个步骤,我们也先用十进制科学计数法类比(见下图)

浮点数加减运算的步骤
1对阶:使两个操作数的小数点位置对齐,即使得两个数的阶码相等。遵循的原则是小阶向大阶看齐。如果尾数右移,阶码加1,尾数左移,阶码减1
2尾数加减:对阶后的尾数按定点数渐渐规则运算
3规格化:由于IEEE754尾数采用的是补码表示,前面的知识我们知道补码规格化后,符号位与最高数值位一定相反,故当尾数最高数值位与符号位不同时才为规格化形式。这里也分为左规和右规
左规:当尾数为00.0xxx或11.1xxxx时左规,尾数左移一位,和的阶码减1
右规:当尾数求和结果溢出时(尾数为10.xx或01.xx)时右规,右规尾数右移一位,和的阶码加1 注意:高位补位时看双符号位的更高位,因为双符号位的跟高位的符号才是正确的符号
4舍入:在对阶和右规的过程中可能会将尾数的低位丢失从而引起误差,故须用”0“舍”1“入法或恒置”0“法,这里就不再赘述
5判溢出
在这里插入图片描述

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值