浮点数的内存表示方法

定点记法

  对于32位整数来说,包含1位符号位,16位整数位,15位小数位。整数部分表示2个递增次幂(和普通整数一样,2,4,8...),小数部分表示2的倒数的弟减次幂(1/2, 1/4, 1/8 ...)。例如把-173.25用定点记法表示,则

  符号=1,173=10101101,0.25=0100000000000

  最终结果为 1 0000000010101101 010000000000000

浮点记法

  浮点记法包括1位符号位,8位指数位,23位小数位。符号位和小数位的意义和定点记法中类似。指数表示2^(e-127)中的e的值。对于此三部分,需要套用以下公式计算:

  s * 2^(e-127) * (1+m),其中s为符号位,e为指数位,m为小数位。

  例如,对于0.15625 = 1 * 2^(124-127) * (1+1/4)

总结

  尾数位越多,精度越高;指数位越多,可表示的范围越大。

  满足方程 1 + x != 1的最小x称为机器的 epsilon。

参考自《游戏引擎架构》  

原文地址:https://www.cnblogs.com/tekkaman/p/3628374.html