1 / 7
文档名称:

IEEE 745浮点数标准.doc

格式:doc   大小:111KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

IEEE 745浮点数标准.doc

上传人:kunpengchaoyue 2021/11/6 文件大小:111 KB

下载得到文件列表

IEEE 745浮点数标准.doc

文档介绍

文档介绍:: .
标题:解读IEEE标准754:浮点数表示
一、 背景
在IEEE标准754之前,业界并没有一个统一的浮点数标准,相反,很多计 算机制造商都设计自己的浮点数规则, 以及运算细节。那时,实现的速度和简易
性比数字的精确性更受重视。
直到1985年Intel打算为其的8086微处理器引进一种浮点数协处理器的时 候,聪明地意识到,作为设计芯片者的电子工程师和固体物理学家们, 也许并不
能通过数值分析来选择最合理的浮点数二进制格式。于是Intel在请加州大学伯 克利分校的 William Kahan教授——最优秀的数值分析家之一来为 8087 FPU设 计浮点数格式;而这个家伙又找来两个专家来协助他,于是就有了 KCS组合
(Kah n. Coo na n, and Sto ne )。 他们共同完成了 In tel的浮点数格式设计,
而且完成地如此出色,以致于IEEE组织决定采用一个非常接近 KCS的方案作为 IEEE的标准浮点格式。目前,几乎所有计算机都支持该标准,大大改善了科学 应用程序的可移植性。
二、 表示形式
从表面上看,浮点数也是一串0和1构成的位序列(bit sequenee),并不是 三头六臂的怪物,更不会咬人。然而IEEE标准从逻辑上用三元组{S,E,M}表示一 个数N,如下图所示:
S
E
M
最髙位
#
#
N的实际值n由下列式子表示:
#
其中:
* n,s,e,m分别为N,S,E,M对应的实际数值,而N,S,E,M仅仅是一串二进制 位。
* S(sign)表示N的符号位。对应值s满足:n>0时,s=0; *0时,s=1。
* E(exponent)表示N的指数位,位于S和M之间的若干位。对应值e值也 可正可负。
* M(mantissa)表示N的尾数位,恰好,它位于 N末尾。M也叫有效数字位
(sinificand )、系数位(coefficient ),甚至被称作“小数”。
三、浮点数格式
IEEE标准754规定了三种浮点数格式:单精度、双精度、扩展精度。前两
者正好对应C语言里头的float、double或者FORTRA里头的real、double精 度类型。限于篇幅,本文仅介绍单精度、双精度浮点格式。
* 单精度:N共32位,其中S占1位,E占8位,M占23位。

31 30 Z3 Z2 0
S
E
M
★ 双精度:N共64位,其中S占1位,E占11位,M占52位
刘精度浮点格貳
63 62 52 51 0
S
E
M
值得注意的是,M虽然是23位或者52位,但它们只是表示小数点之后的二 进制位数,也就是说,假定 M为“0... ” ,在二进制数值上其实是“ .0…”。 而事实上,标准规定小数点左边还有一个隐含位,这个隐含位通常,哦不,应该 说绝大多数情况下是1,那什么情况下是0呢?答案是N对应的n非常小的时候, 比如小于2(126)(32 位单精度浮点数)。不要困惑怎么计算出来的,看到后面 你就会明白。总之,隐含位算是赚来了一位精度