zoukankan      html  css  js  c++  java
  • 浮点数的内存表示方法

    定点记法

      对于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。

    参考自《游戏引擎架构》  

  • 相关阅读:
    go并发和并行
    goroutine
    go并发
    wampserver配置问题
    获取字符串的长度
    mysql中事件失效如何解决
    Go语言中Goroutine与线程的区别
    Mosquitto服务器的日志分析
    phpexcel导出数据 出现Formula Error的解决方案
    Centos6.X 手动升级gcc
  • 原文地址:https://www.cnblogs.com/tekkaman/p/3628374.html
Copyright © 2011-2022 走看看