基于IEEE 754的浮点数存储格式分析研究_第1页
基于IEEE 754的浮点数存储格式分析研究_第2页
基于IEEE 754的浮点数存储格式分析研究_第3页
基于IEEE 754的浮点数存储格式分析研究_第4页
基于IEEE 754的浮点数存储格式分析研究_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、基于IEEE 754的浮点数存储格式阐发研究摘要浮点数的表现和存储直接影响盘算机的布局和性能,IEEE754是浮点运算部件终究上的产业尺度,是盘算机上利用最为普及的浮点尺度。文章在阐述了浮点数的根本观点和IEEE754浮点数的表现情势及其格式的底子上,比力深化的比力、阐发和研究了Intelx86和SPAR布局盘算机上利用的三种IEEE浮点数的存储格式。关键词IEEE754;浮点数;浮点格式;浮点存储格式;规格化IEEEInstitutefEletrialandEletrnisEngineers,电子电气工程师协会在I985年订定的IEEE754IEEEStandardfrBinaryFlati

2、ng-PintAritheti,ANSI/IEEEStd754-1985二进制浮点运算范例,是浮点运算部件终究上的产业尺度。很多盘算机用户偶然机在Intelx86和SPAR或PerP机之间互换二进制数据,以是比较Intelx86和SPAR布局盘算机的数据表现及相干步伐方案语言,讨论IEEE754浮点数存储格式的细节是成心义的。本文对浮点数、IEEE754浮点数的表现要领、规格化处置惩罚等举行了阐发,重点阐发、比力了Intelx86和SPAR布局盘算机IEEE754浮点数的存储格式。在盘算机体系的生长历程中,曾经提出过多种要领表现实数,但是到如今为止利用最普及的是浮点表现法。相对付定点数而言,浮

3、点数利用指数使小数点的位置可以按照必要而上下浮动,从而可以机动地表达更大范畴的实数。浮点数表现法利用科学计数法来表达实数。通常,将浮点数表现为d.ddde,此中d.ddd称为有用数字signifiand,它具有p个数字称p位有用数字精度,为基数Base,e为指数Expnent,表现实数的正负1,2。更正确地,d0.dddp1e,表现以下数d0d11dp1p1e,0di。对实数的浮点表现仅作如上的划定是不敷的,由于同一实数的浮点表现还不是唯一的。比方,1.0102,0.1103,和0.01104都可以表现100.0。为了到达表现单一性的目的,有需要对其作进一步的范例。划定有用数字的最高位(即前导

4、有用位)必须非零,即0d0。切合该尺度的数称为规格化数NralizedNubers,不然称为非规格化数(DenralizedNubers)。2.1实数的IEEE754表现情势一个实数V在IEEE754尺度中可以用V(1)s2E的情势表现3,4,说明如下:(1)标记s(sign)决定实数是正数(s0)照旧负数(s1),对数值0的标记位特别处置惩罚。(2)有用数字signifiand是二进制小数,的取值范畴在12或01。(3)指数Eexpnent是2的幂,它的作用是对浮点数加权。2.2浮点格式浮点格式是一种数据布局,它划定了组成浮点数的各个字段,这些字段的布局,及其算术说明2。IEEE754浮点数

5、的数据位被分别为3个字段,对以上参数值举行编码:(1)一个单独的标记位s直接编码标记s。(2)k位的偏置指数eeek1e1e0编码指数E,移码表现。(3)n位的小数f(fratin)ffn1f1f0编码有用数字,原码表现。2.3浮点数的分类按照偏置指数e的值,被编码的浮点数可分成三种范例。(1)规格化数当有用数字在范畴12中且指数e的位形式ek1e1e0既不满是0也不满是1时,浮点格式所表现的数都属于规格化数。这种环境中小数f0f1)的二进制表现为0.fn1f1f0。有用数字1f,即1.fn1f1f0(此中小数点左侧的数值位称为前导有用位)。我们总是能调解指数E,使得有用数字在范畴12中,如许

6、有用数字的前导有用位总是1,因此该位不需表现表现出来,只需通过指数隐式给出。必要特别指出的是指数E要加上一个偏置值Bias,转换成无标记的偏置指数e,也就是说指数E要以移码的情势在存放盘算机中。且e、E和Bias三者的对应干系为e=EBias,此中Bias=2k11。(2)非规格化数当指数e的位形式ek1e1e0全为零即e0时,浮点格式所表现的数黑白规格化数。这种环境下,E=1Bais,有用数字=f=0.fn1f1f0,有用数字的前导有用位为0。非规格化数的引入有两个目的。其一是它提供了一种表现数值0的要领,其二是它可用来表现那些非常靠近于0.0的数。(3)特别数当指数e的位形式ek1e1e0

7、全为1时,小数f的位形式fn1f1f0全为0即f=0时,该浮点格式所表现的值表现无穷,s=0时是,s=1时是。当指数e的位形式ek1e1e0全为1时,小数f的位形式fn1f1f0不为0fn1、f1、f0、至少有一个非零即f0时,该浮点格式所表现的值被称为NaNNtaNuber。好比当盘算或时用作返回值,大概用于表现未初始化的数据。与浮点格式对应,浮点存储格式划定了浮点格式在存储器中怎样存放。IEEE尺度界说了这些浮点存储格式,但详细选择哪种存储格式由实现东西步伐方案语言决定。汇编语言软件偶然取决于所利用的存储格式,但更高级的语言通常仅处置惩罚浮点数据范例的语言观点。这些浮点数据范例在差异高级语

8、言中有差异的名字,相应的IEEE格式如表1。表1IEEE格式和语言范例IEEE精度,+FRTRAN单精度flatREALrREAL*4双精度dubleDUBLEPREISINrREAL*8扩展双精度lngdubleREAL*16仅实用于SPAR和PerPIEEE754尺度正确地界说了单精度和双精度浮点格式,并为这两种根本格式的别离界说了扩展格式,表1里扩展双精度格式是IEEE尺度界说的扩展双精度类中的一种。下面详细讨论在Intelx86和SPAR平台上利用的三种IEEE浮点存储格式。3.1单精度格式IEEE单精度浮点格式共32位,包罗三个组成字段:23位小数f,8位偏置指数e,1位标记s。将这

9、些字段一连存放在一个32位字里,并对其举行编码。此中0:22位包罗23位的小数f;23:30位包罗8位指数e;第31位包罗标记s。如图1所示。图1单精度存储格式一样平常地,32位字的第0位存放小数f的最低有用位LSBtheleastsignifiantbit,第22位存放小数f的最高有用位SBthestsignifiantbit;第23位存放偏置指数的最低有用位LSB,第30位存放偏置指数的最高有用位SB;最高位,第31位存放标记s。3.2双精度格式IEEE双精度浮点格式共64位,占2个一连32位字,包罗三个组成字段:52位的小数f,11位的偏置指数e,1位的标记位s。将这2个一连的32位字团

10、体作为一个64位的字,举行重新编号。此中0:51位包罗52位的小数f;52:62位包罗11位的偏置指数e;而最高位,第63位包罗标记位s。如图2所示。图2双精度浮点数的存储格式f31:0存放小数f的低32位,此中第0位存放整个小数f的最低有用位LSB,第31位存放小数f的低32位的最高有用位SB。在别的的32位的字里,第0到19位,即f51:32,存放小数f的最高的20位,此中第0位存放这20位最高有用数中的最低有用位LSB,第19位存放整个小数f的最高有用位SB。第20到30位,即e52:62,存放11位的偏置指数e,此中第20位存放偏置指数的最低有用位LSB,第30位存放最高有用位SB。最

11、高位,第31位存放标记位s。在Intelx86布局盘算机中,数据存放接纳小端法littleendian,故较低地点的32位的字中存放小数f的f31:0位。而在在SPAR布局盘算机中,因其数据存放接纳大端法bigendian,故较高地点的32位字中存放小数f的f31:0位。3.3扩展双精度格式扩展双精度格式SPAR布局盘算机该4倍精度浮点环境切合IEEE关于扩展双精度格式的界说。该浮点环境的4倍精度浮点格式共128位,占4个一连32位字,包罗3个组成字段:112位的小数f,15位的偏置指数e,和1位的标记s。将这4个一连的32位字团体作为一个128位的字,举行重新编号。此中0:110位包罗小数f

12、;112:126位包罗偏置指数e;第127位包罗标记位s。如图3所示。在SPAR布局盘算机中,地点最高的32位字存放小数的32位最低有用位,即f31:0;但是在PerP布局盘算机中,却是地点最低的32位字存放这些位。紧邻的两个32位字在SPAR机中向下盘算,在PerP机中向上盘算别离存放f63:32和f95:64。末了一个字的第0到15位存放小数的最高16位,即f111:96。此中第0位存放该16位的最低有用位,第15位存放整个小数f的最高有用位。第16到30位存放15位的偏置指数e,此中第16位存放偏置指数的最低有用位,第30位存放它的最高有用位。最高位,第31位存放标记s。图3扩展双精度存

13、储格式(SPAR布局盘算机)扩展双精度格式Intelx86布局盘算机该浮点环境双精度扩展格式切合IEEE双精度扩展格式的界说。该浮点环境的扩展双精度格式共80位,占3个一连32位字,包罗四个组成字段:63位的小数f,1位显式前导有用位expliitleadingsignifiandbitj,15位偏置指数e,和1位标记位s。将这3个一连的32位字团体作为一个96位的字,举行重新编号。此中0:63包罗63位的小数f,第63位包罗前导有用位j,64:78位包罗15位的偏置指数e,最高位第79位包罗标记位s。在Intel布局系盘算机中,这些字段依次存放在十个一连的字节中。但是,由于UNIXSyste

14、VAppliatinBinaryInterfaeIntel386PressrSuppleent(IntelABI)要求双精度扩展参数,从而占用堆栈中3个相连地点的32位字,此中最高一个字的高16位未被利用,如图4所示。图4扩展双精度存储格式(Intelx86布局盘算机)地点最低的32位字存放小数f的低32位,即f31:0。此中第0位存放整个小数f的最低有用位LSB第31位存放小数低32位的最高有用位SB。地点居中的32位字,第0到30位存放小数f的31位最高位,即f62:32。此中第0位存放31位最高小数位的最低有用位LSB,第30位存放整个小数的最高有用位,地点居中的32位字的最高位第31位存放显式的前导有用位j。地点最高32位字里,第0到14位存放15位的偏置指数e,第0位存放偏置指数的最低有用位LSB,第14位存放最高有用位SB,第15位存放标记位s。固然地点最高的32位字的高16位在Intelx86布局系列机种未被利用,但他们对切合IntelABI的划定来说,是必须的。以上讨论了Intelx86、PerP和SPAR平台上利用的三种IEEE754浮点数格式及其存储格式,下面临浮点数的相干参数举行总结,详细见表2。表2

温馨提示

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

最新文档

评论

0/150

提交评论