您的当前位置:首页正文

浮点数表示方法总结

2024-06-04 来源:欧得旅游网
1.关于浮点数的问题 浮点数的一般格式:

格式(1) 格式(2) 阶码符号

1位k位尾数符号1位n位尾数符号阶码符号1位1位k位n位ese阶码Emsm尾数Mmsese阶码Em尾数数值注意:(1)一般浮点数尾数采用纯小数(隐含位为0)来表示,即尾数M与定点小数表示方法相同,由于

尾数的符号位决定整个浮点数的符号,故有时采用格式(2)的形式;

(2)当尾数真值为0(不论阶码何值),或阶码的值比能在机器中表示的最小值还小,计算机把该浮

点数看成零值,称为机器零,即浮点数表示不了真值绝对值很接近0的数,只能看成0处理; (3)尾数通常用原码或补码表示,阶码一般用移码或补码表示,如无特别说明,采用课本44页移

码表示方法。

浮点数表示范围:

上溢负数区0下溢正数区上溢最大正数=最大正尾数2最大阶码最小正数=最小正尾数2最小阶码

最大负数=最大负尾数2最小阶码最小负数=最小负尾数2最大阶码

那么给定一浮点数的表示形式,包括符号、阶码、尾数各占位数及其采用哪种机器码表示,如求其能表示最大负数,转化为求这种表示形式的能表示的最大负尾数,最小阶码。 浮点数规格化表示:

为了提高数据的表示精度,当浮点数尾数的真值不为 0 时,满足条件1尾数真值1,称为一般

2浮点数的规格化表示。如没特别说明,指的是一般的非规格化浮点数。注意规格化浮点数与一般浮点数一样,隐含位也是0,仅仅对尾数真值加上这一约束条件而已。对于不同码制,特征如下: (1)尾数原码表示: (采用形式(1),按照尾数数值位为n位)

尾数符号1位尾数数值n位①尾数>0时,其尾数部分形式

01XXXXXXXXXXXXXXXXXXn称为规格化

最大:尾数部分0111…11,真值为12最小:尾数部分0100…00,真值为

1; 2尾数数值n位1XXXXXXXXXXXXXXXXXX尾数符号1位

②尾数<0时,其尾数部分形式

1称为规格化

最大:尾数部分1100…00,真值为1; 2n最小:尾数部分1111…11,真值为(12);

(2)尾数补码表示: (采用形式(1),按照尾数数值位为n位)

尾数符号1位尾数数值n位 ①尾数>0时,其尾数部分形式

01XXXXXXXXXXXXXXXXXXn称为规格化

最大:尾数部分0111…11,真值为12最小:尾数部分0100…00,真值为

1; 2尾数数值n位0XXXXXXXXXXXXXXXXXX尾数符号1位 ②尾数<0时,其尾数部分形式

1称为规格化

(注意:某些书上对此含糊其辞,参考清华(郑纬民:计算机系统结构)与上交大的书,以此为准!)

最大:尾数部分1011…11,真值为(12n); 2最小:尾数部分1000…00,真值为-1;

关于IEEE745浮点数:

数符移码表示原码表示ms表示形式

尾数符号1位E阶码m尾数数值

(1)IEEE754浮点数短浮点数和长浮点数尾数隐含位为1,临时浮点数没有隐含位,注意阶码的偏置值与

msE偏置值表示真值(1)1.m2一般浮点数不同,对于单精度和双精度数;

短浮点数和长浮点数尾数采用隐含位为1称之为规格化的IEEE短浮点数与长浮点数(注意区别一般的规格化浮点数)。IEEE标准中也引入了非规格化浮点数,规定当浮点数的指数为允许的最小指数值时,尾数不必是规格化(Normalized)的。有了非规格浮点数,去掉了隐含的尾数位的制约,可以保存绝对值更小的浮点数。

(2)机器零表示为全0;

(3)无限大数阶码全1,尾数全0,符号位指示正无穷或者负无穷。若阶码全1,尾数不全0,表示NaN(非数字)。

(4)由于(2)(3)原因,单精度数阶码部分不能使用和00000000,双精度阶码不能使用和00000000000。 2.课本习题3-4解答

以下解答采用浮点数表示形式(1),注意本题目不是IEEE754的格式!!!!!指的是一般浮点数。 (1)根据浮点数的表示范围,实质上是找到最大正尾数、最大阶码的表示及其真值(没有特别指出指的是一般格式浮点数,不用考虑规格化)

阶码:移码(课本44-45页),故全1时最大;尾数:补码

二进制表示为:

11111111011111111111111111111111真值:(1223)2127

(2)实质上是找到最小负尾数、最大阶码(没有特别指出指的是一般格式浮点数,不用考虑规格化)

二进制表示为:

11111111100000000000000000000000真值:2127

(3)规格化需要特别注意其尾数的形式!!!尾数为补码,注意其正、负的表示形式

最大正数形式:

11111111011111111111111111111111真值:(1223)2127 00000000010000000000000000000000真值:12128

最小正数形式:

2 最大负数形式:

00000000101111111111111111111111真值:(1223)2128

2最小负数形式:

11111111100000000000000000000000真值:2127

3.关于IEEE754标准表示范围的讨论(以短浮点数为例)

IEEE754标准的短浮点数采用偏置值为127的移码作为阶码,尾数采用原码表示,规格化的IEEE短浮点数有隐含位为1。(注意区别于一般的浮点数的特点)故规格化的IEEE短浮点数表示范围讨论如下: 最大正数,考虑到阶码的取值限制,只能取00000,故形式为

01111111011111111111111111111111真值:(2223)2127 00000000100000000000000000000000真值:2126 10000000100000000000000000000000真值:2126

11111111011111111111111111111111真值:(2223)2127

最小正数:最大负数:

最小负数:

另,当全0时,用来表示浮点0

关于规格化的IEEE长浮点数的范围,请大家自行推理研究。

上次考试原题:IEEE754标准规定32位浮点数格式中,符号位1位,阶码为8位,尾数为23位,则能表示的最大规格化正数为: A.(224.更多>>

(1)数据表示这部分机器码中补码作为重点及难点,对于数据的表示,着重从其设计思想上理解,如果实在是不能够理解和推导出这几种机器码的表示方式及范围,只能记住了;对于求数值的机器数,比如负数的补码,可以采用公式,也可采用符号位为1,数值位取反末位加1去得到,反过来求机器数的真值道理亦然;

(2)浮点数这部分是难点,请大家仔细阅读本文,应该能区别开一般的作为理论研究的浮点数,一般的规格化浮点数以及在IEEE754标准下的浮点数之不同;

(3)关于数据表示的内容,课堂上只学到了最基本的,其实还有很多,比如按照某种要求设计一种浮点数,某种浮点数的表示方法的评价标准包括表数精度、表数效率、基值选择、格式设计等等,计算机系统结构学科关于这部分的内容很多很多,有兴趣同学可参考清华大学教授郑纬民编写的《计算机系统结构》一书。

23)2127 B.(1223)2127 C.(2223)2255 D.2127223

因篇幅问题不能全部显示,请点此查看更多更全内容