zoukankan      html  css  js  c++  java
  • float和double的区别

    float和double在游戏行业肯定是用的很多的,虽然这是个很基础的问题,但是面试时被问到还是感觉说的不是很好。
    所以还是总结一下:

    float 单精度浮点数在机内占 4 个字节,用 32 位二进制描述。

    double 双精度浮点数在机内占 8 个字节,用 64 位二进制描述。

    浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。

    数符占 1 位二进制,表示数的正负。

    指数符占 1 位二进制,表示指数的正负。

    尾数表示浮点数有效数字,0.xxxxxxx, 但不存开头的 0 和点。

    指数存指数的有效数字。

    指数占多少位,尾数占多少位,由计算机系统决定。

    可能是数符加尾数占 24 位,指数符加指数占 8 位 -- float。

    数符加尾数占 48 位,指数符加指数占 16 位 -- double。

    知道了这四部分的占位,按二进制估计大小范围,再换算为十进制,就是你想知道的数值范围。

    对编程人员来说,double 和 float 的区别是 double 精度高,有效数字 16 位,float 精度 7 位。但 double 消耗内存是 float 的两倍,double 的运算速度比 float 慢得多,
    C 语言中数学函数名称 double 和 float 不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。

    简单来说,Float 为单精度,内存中占 4 个字节,有效数位是 7 位(因为有正负,所以不是8位),在我的电脑且 VC++6.0 平台中默认显示是6位有效数字;double为 双精度,占 8 个字节,有效数位是 16 位,但在我的电脑且 VC++6.0 平台中默认显示同样是 6 位有效数字

  • 相关阅读:
    JavaScript(第五天)【流程控制语句】
    JavaScript(第四天)【运算符】
    JavaScript(第二天)【语法,变量】
    JavaScript(第一天)【<script>标签浅析】
    JavaScript(简介)【Javascript历史】
    [LeetCode-JAVA] Substring with Concatenation of All Words
    [LeetCode-JAVA] Reverse Nodes in k-Group
    [LeetCode-JAVA] Median of Two Sorted Arrays
    [LeetCode-JAVA] Contains Duplicate IIIMaximal Square
    [LeetCode-JAVA] Contains Duplicate III
  • 原文地址:https://www.cnblogs.com/kukudejiafei/p/14103500.html
Copyright © 2011-2022 走看看