ieee754规定的双精度浮点数表示_第1页
ieee754规定的双精度浮点数表示_第2页
ieee754规定的双精度浮点数表示_第3页
ieee754规定的双精度浮点数表示_第4页
ieee754规定的双精度浮点数表示_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、IEEE754规定的双精度浮点数表示(来自中文wikipedia):signbit(符号):用来表示正负号exponent僧数):用来表示次方数mantissa尾数):用来表示准确度浮点数的表示和存储直接影响计算机的构造和性能,IEEE754是浮点运算部件事实上的工业标准,是计算机上使用最为广泛的浮点标准。文章在阐述了浮点数的根本概念和IEEE754浮点数的表示形式及其格式的根底上,比较深化的比较、分析和研究了Intelx86和SPARC构造计算机上使用的三种IEEE浮点数的存储格式。关键词IEEE754;浮点数;浮点格式;浮点存储格式;规格化0引言IEEEInstituteofElectri

2、calandElectronicsEngineers,电子电气工程师协会在I985年制定的IEEE754IEEEStandardforBinaryFloating-PointArithmetic,ANSI/IEEEStd754-1985二进制浮点运算标准,是浮点运算部件事实上的工业标准。许多计算机用户有时机在Intelx86和SPARC或PowerPC机之间交换二进制数据,所以对照Intelx86和SPARC构造计算机的数据表示及相关程序设计语言,讨论IEEE754浮点数存储格式的细节是有意义的。本文对浮点数、IEEE754浮点数的表示方法、规格化处理等进展了分析,重点分析、比较了Intelx

3、86和SPARC构造计算机IEEE754浮点数的存储格式。1浮点数在计算机系统的开展过程中,曾经提出过多种方法表示实数,但是到目前为止使用最广泛的是浮点表示法。相对于定点数而言,浮点数利用指数使小数点的位置可以根据需要而上下浮动,从而可以灵敏地表达更大范围的实数。dxes其中d.ddd称为有效数字significand,它具有p个数字称p位有效数字精度,§为基数Base,e为指数Exponent,土表示实数的正负1,2。更准确地,士d0dd2-1><%表示以下数士d0+d1B-1+dp.1葭pT'Be,0v(kb。对实数的浮点表示仅作如上的规定是不够的,因为同一实

4、数的浮点表示还不是唯一的。例如,1.0X102,0.1XC3,和0.01X04都可以表示100.0。为了到达表示单一性的目的,有必要对其作进一步的标准。规定有效数字的最高位(即前导有效位)必须非零,即0vd0V由符合该标准的数称为规格化数NormalizedNumbers,否那么称为非规格化数(DenormalizedNumbers)。2 IEEE754浮点数与其浮点格式2.1 实数的IEEE754表示形式一个实数V在IEEE754标准中可以用V=(1)s”仅2E的形式表示3,4,说明如下:符号s(sign)决定实数是正数(s=0区是负数(s=1),对数值0的符号位特殊处理。(2)有效数字Ms

5、ignificand是二进制小数,M的取值范围在1VMV2或0VMV1。(3)指数Eexponent是2的号,它的作用是对浮点数加权。2.2 浮点格式浮点格式是一种数据构造,它规定了构成浮点数的各个字段,这些字段的布局,及其算术解释2。IEEE754浮点数的数据位被划分为3个字段,对以上参数值进展编码:(1) 一个单独的符号位s直接编码符号s。(2)k位的偏置指数ee=ek-1e1e。编码指数E,移码表示。(3)n位的4、数f(fraction)f=fn-1f#。编码有效数字M,原码表示。2.3 浮点数的分类根据偏置指数e的值,被编码的浮点数可分成三种类型。(1)规格化数当有效数字M在范围1&

6、lt;M<2中且指数e的位形式ekT-eie。既不全是0也不全是1时,浮点格式所表示的数都属于规格化数。这种情况中小数f0<仁1)的二进制表示为0.fn-1f1f0。有效数字M=1+f,即M=1.fn-1f1f0(其中小数点左侧的数值位称为前导有效位)。我们总是能调整指数E,使得有效数字M在范围1<M<2中,这样有效数字的前导有效位总是1,因此该位不需显示表示出来,只需通过指数隐式给出。需要特别指出的是指数E要加上一个偏置值Bias,转换成无符号的偏置指数e,也就是说指数E要以移码的形式在存放计算机中。且e、E和Bias三者的对应关系为e=E+Bias,其中Bias=2

7、T1。(2)非规格化数当指数e的位形式ek-1.e1eo全为零即e=0时,浮点格式所表示的数是非规格化数。这种情况下,E=1-Bais,有效数字M=f=0.fnff。,有效数字的前导有效位为0。非规格化数的引入有两个目的。其一是它提供了一种表示数值0的方法,其二是它可用来表示那些非常接近于0.0的数。(3)特殊数当指数e的位形式ek-1-e1e0全为1时,小数f的位形式J1f1f0全为0即f=0时,该浮点格式所表示的值表示无穷,s=0时是+0ss=1时是-co。当指数e的位形式ek-1eeo全为1时,小数f的位形式fn-1£而不为0fn-1、f1、f°、至少有一个非零即fw

8、。时,该浮点格式所表示的值被称为NaNNotaNumber。比方当计算或国ccfl寸用作返回值,或者用于表示未初始化的数据。3 IEEE754浮点存储格式与浮点格式对应,浮点存储格式规定了浮点格式在存储器中如何存放。IEEE标准定义了这些浮点存储格式,但详细选择哪种存储格式由实现工具程序设计语言决定。汇编语言软件有时取决于所使用的存储格式,但更高级的语言通常仅处理浮点数据类型的语言概念。这些浮点数据类型在不同高级语言中有不同的名字,相应的IEEE格式如表1。表1IEEE格式和语言类型IEEE精度C,C+FORTRAN单精度floatREALorREAL*4双精度doubleDOUBLPRECI

9、SIONorREAL*8扩展双精度longdoubleREAL*16仅适用于SPARC口PowerPC1里扩展双精度格式是IEEE标准定义的扩展双精度类中的一种。IEEE754标准准确地定义了单精度和双精度浮点格式,并为这两种根本格式的分别定义了扩展格式,表下面详细讨论在Intelx86和SPARC平台上使用的三种IEEE浮点存储格式。3.1 单精度格式IEEE单精度浮点格式共32位,包含三个构成字段:23位小数f,8位偏置指数e,1位符号s。将这些字段连续存放在一个32位字里,并对其进展编码。其中0:22位包含23位的小数f;23:30位包含8位指数e;第31位包含符号s如图1所示。e30:

10、20f22:0313023220图1单精度存储格式一般地,32位字的第0位存放小数f的最低有效位LSBtheleastsignificantbit,第22位存放小数f的最高有效位MSBthemostsignificantbit;第23位存放偏置指数的最低有效位LSB,第30位存放偏置指数的最高有效位MSB;最高位,第31位存放符号s。3.2 双精度格式IEEE双精度浮点格式共64位,占2个连续32位字,包含三个构成字段:52位的小数f,11位的偏置指数e,1位的符号位s。将这2个连续的32位字整体作为一个64位的字,进展重新编号。其中0:51位包含52位的小数f;52:62位包含11位的偏置指

11、数e;而最高位,第63位包含符号位s。如图2所示。S比52节田f5不6252勺皿3) n图2双精度浮点数的存储格式f31:0存放小数f的低32位,其中第0位存放整个小数f的最低有效位LSB,第31位存放小数f的低32位的最高有效位MSB。在另外的32位的字里,第0到19位,即f51:32,存放小数f的最高的20位,其中第0位存放这20位最高有效数中的最低有效位LSB,第19位存放整个小数f的最高有效位MSB。第20到30位,即e52:62,存放11位的偏置指数e,其中第20位存放偏置指数的最低有效位LSB,第30位存放最高有效位MSB。最高位,第31位存放符号彳USo在Intelx86构造计算

12、机中,数据存放采用小端法littleendian,故较低地址的32位的字中存放小数f的f31:0位。而在在SPARC构造计算机中,因其数据存放采用大端法bigendian高,故较高地址的32位字中存放小数f的f31:0位。3.3扩展双精度格式扩展双精度格式SPARC构造计算机该4倍精度浮点环境符合IEEE关于扩展双精度格式的定义。该浮点环境的4倍精度浮点格式共128位,占4个连续32位字,包含3个构成字段:112位的、数f,15位的偏置指数e,和1位的符号So将这4个连续的32位字整体作为一个128位的字,进展重新编号。其中0:110位包含小数f;112:126位包含偏置指数e;第127位包含

13、符号位s如图3所示。在SPARC构造计算机中,地址最高的32位字存放小数的32位最低有效位,即f31:0;但是在PowerPC构造计算机中,却是地址最低的32位字存放这些位。紧邻的两个32位字在SPARC机中向下计算,在PowerPC机中向上计算分别存放f63:32和f95:64。16到30位存放15位的偏最后一个字的第0到15位存放小数的最高16位,即f111:96。其中第0位存放该16位的最低有效位,第15位存放整个小数f的最高有效位。第置指数e,其中第16位存放偏置指数的最低有效位,第30位存放它的最高有效位。最高位,第31位存放符号s。图3扩展双精度存储格式(SPARC构造计算机)扩展

14、双精度格式Intelx86构造计算机该浮点环境双精度扩展格式符合IEEE双精度扩展格式的定义。该浮点环境的扩展双精度格式共80位,占3个连续32位字,包含四个构成字段:63位的小数f,1位显式前导有效位explicitleadingsignificandbitj,15位偏置指数e,和1位符号位8将这3个连续的32位字整体作为一个96位的字,进展重新编号。其中0:63包含63位的小数f,第63位包含前导有效位j,64:78位包含15位的偏置指数e,最高位第79位包含符号位s。在Intel构造系计算机中,这些字段依次存放在十个连续的字节中。但是,由于UNIXSystemVApplicationBi

15、naryInterfaceIntel386ProcessorSupplement(IntelABI)要求双精度扩展参数,从而占用堆栈中3个相连地址的32位字,其中最高一个字的高16位未被使用,如图4所示。图4扩展双精度存储格式(Intelx86构造计算机)地址最低的32位字存放小数f的低32位,即f31:0。其中第0位存放整个小数f的最低有效位LSB第31位存放小数低32位的最高有效位MSB。地址居中的32位字,第0到30位存放小数f的31位最高位,即f62:32。其中第0位存放31位最高小数位的最低有效位LSB,第30位存放整个小数的最高有效位,地址居中的32位字的最高位第31位存放显式的前导有效位jo地址最高32位字里,第0到14位存放15位的偏置指数e,第0位存放偏置指数的最低有效位LSB,第14位存放最高有效位MSB,第15位存放符号位s。虽然地址最高的32位字的高16位在Intelx86构造系列机种未被使用,但他们对符合IntelABI的规定来说

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论