zoukankan      html  css  js  c++  java
  • 浮点数默认精度在windows/linux上的差异

    好久没写点什么了。
    浮点数在fpu上处理有个精度控制,可以是单精度(长32bit其中尾数24bit),双精度(长64bit尾数56bit),扩展精度(长80bit,尾数64bit)。这是通过浮点控制字的一个位段来控制的。
    在windows/vc环境(未证实,也许与编译器有关,比如是vc)下,默认的精度是双精度。
    在linux/gcc环境则默认是扩展精度。
    这可以造成你在含有浮点计算的程序移植时出现一些细微的差异。
    win/vc可以通过_controlfp函数改变默认设置,linux/gcc则是用_FPU_SETCW宏。
    另外要说一点,dx初始化时可以选择浮点的精度为单精度,那个接口最终应该也是通过改变fpu的控制字实现的。
  • 相关阅读:
    程序的版式
    文件结构
    LIB和DLL的区别与使用
    静态链接库
    C++ Vector
    C++ Map
    C++ List
    快速实现十进制向二进制转换
    Fail2ban 运维管理 服务控制
    Fail2ban 配置详解 动作配置
  • 原文地址:https://www.cnblogs.com/kaikai/p/1400754.html
Copyright © 2011-2022 走看看