龙空技术网

二进制浮点数算术标准IEEE 754与转换实例

老牛实验室 246

前言:

此时各位老铁们对“二进制指数算法”可能比较看重,看官们都想要知道一些“二进制指数算法”的相关内容。那么小编也在网上汇集了一些有关“二进制指数算法””的相关文章,希望各位老铁们能喜欢,各位老铁们快快来了解一下吧!

IEEE 754标准定义了在计算机系统中,用二进制表示浮点数的标准。

二进制浮点数表示

sign 为符号位 exponent 为指数位(以2为底) fraction为分数部分

Value=sign*exponent*fraction

一、IEEE 754的前世今生

在IEEE 754出现前,各家计算机公司自己使用自己的数值表示标准,当时在移植代码时非常困难。1976年,Intel为8086微处理器引入浮点协处理器时意识到,硬件工程师并不善于数值的定义。于是,Intel找到当时最优秀的数值专家--加州大学伯克利分校的 William Kahan 教授,Kahan教授又找了Coonan和Stone协助,共同完成了Intel浮点数格式设计。

IEEE(Institute of Electrical and Electronics Engineers)认识到Intel的浮点表示方案的优秀,决定采用类似Intel的方案作为 IEEE 的标准浮点格式。1985 年推出了二进制浮点运算标准 IEEE 754(IEEE Standard for Binary Floating-Point Arithmetic,ANSI/IEEE Std 754-1985),该标准限定指数的底为 2,并于同年成为 ANSI 标准。目前,几乎所有的计算机都支持 IEEE 754 标准,它大大地改善了科学应用程序的可移植性。

IEEE后来又推出了与底数无关的二进制浮点运算标准--- IEEE 854。1987年,被美国引用为 ANSI 标准。1989 年,国际标准组织 IEC 批准 IEEE 754/854 为国际标准 IEC 559:1989。修订后,标准号改为 IEC 60559。目前,几乎所有的浮点处理器完全或基本支持 IEC 60559。

二、IEEE 754定义

IEEE 754定义了四种浮点数值的方式:

单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。只有32位模式有强制要求,其他都是选择性的。大部分编程语言都有提供IEEE浮点数格式与算术,但有些将其列为非必需的。

单精度表示(32位)

双精度表示(64)

IEEE 标准除定义了表示格式,还定义了以下特殊值:±0、反向规格化的数、±∞ 和 NaN。

十进制转换为二进制实例 (59.25)

整数部分:59  ➗   2   =29       -----129  ➗   2   =14       -----114  ➗   2   =7         -----07    ➗   2   =3         -----13    ➗   2  =1          -----11    ➗   2  =0          -----1小数部分:0.25 x 2=0.5           ------00.5   x 2=1              ------1按位表示(x86的字节序):59.25------>111011.01

二进制转十进制 (111011.01)

1-->1*2*2*2*2*2-->321-->1*2*2*2*2---->161-->1*2*2*2------->80-->0*2*2---------->01-->1*2------------>21-->1--------------->1  .0-->0*2的-1次方---->01-->1*2的-2次方---->0.25将值求和:111011.01---->59.25

标签: #二进制指数算法 #二进制计算法则的算法图解 #kahan算法 #二进制算法的公式 #二进制算法的公式是