第1页共20页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共20页标题:解读IEEE标准754:浮点数表示解读IEEE标准754:浮点数表示如须转载请注明作者为Lolita@linuxsir
org,并请保持文章的完整和提供转载出处
更新:20060623-06:44增加了求最大非规格数的公式20060622-23:40修改了几处笔误,换掉了实验部分的那张大图,改用代码显示
一、背景在IEEE标准754之前,业界并没有一个统一的浮点数标准,相反,很多计算机制造商都设计自己的浮点数规则,以及运算细节
那时,实现的速度和简易性比数字的精确性更受重视
直到1985年Intel打算为其的8086微处理器引进一种浮点数协处理器的时候,聪明地意识到,作为设计芯片者的电子工程师和固体物理学家们,也许并不能通过数值分析来选择最合理的浮点数二进制格式
于是Intel在请加州大学伯克利分校的WilliamKahan教授──最优秀的数值分析家之一来为8087FPU设计浮点数格式;而这个家伙又找来两个专家来协助他,于是就有了KCS组合(Kahn,Coonan,andStone)
他们共同完成了Intel的浮点数格式设计,而且完成地如此出色,以致于IEEE组织决定采用一个非常接近KCS的方案作为IEEE的标准浮点格式
目前,几乎所有计算机都支持该标准,大大改善了科学应用程序的可移植性
第2页共20页第1页共20页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共20页二、表示形式从表面上看,浮点数也是一串0和1构成的位序列(bitsequence),并不是三头六臂的怪物,更不会咬人
然而IEEE标准从逻辑上用三元组{S,E,M}表示一个数N,如下图所示:N的实际值n由下列式子表示:其中:★n,s,e,m分别为N,S,E,M对应的实际数值,而N,S,