zoukankan      html  css  js  c++  java
  • C语言之数据类型②——浮点类型

    1.浮点类型的种类:

    • float——4字节
    • double——8字节
    • long double——8字节(某些平台编译器,可能是16字节)

    float x=1.23;——建议(float x=1.23F;)

    double y=1.23;

    long double z=1.23;

    2.浮点类型的存储格式

    float和double在存储方式上都是遵从IEEE编码规范的

    以8.25为例

    (1)整数部分十进制整数转二进制(除法)

      

    所有的整数一定能完整的转换成二进制

    (2)小数部分转二进制(乘法)

      

       总结:用二进制描述小数不可能完全精确,就像十进制描述1/3不能完全描述

     因此8.25转成浮点存储就是    1000.01——这个数用二进制的科学计数法表示就是   1.00001*23     指数为3,尾数为00001

      

     就是:01000001000001000000000000000000

      用计算器转为16进制就是:41040000

    反汇编查看:

      

     

    3.浮点类型的精度(整数+小数的位数)

    float和double的精度是由尾数的位数来决定的

    float:2^23=8388608,一共7位,这意味这最多能有7位有效数字;

    double:2^52=4,503,599,627,370,496,一共16位,这意味着最多能有16位有效数字

  • 相关阅读:
    mfc给对话框添加背景
    科学计数法中的尾数、基、指数
    格式化输出符号详细说明(待补充)
    写入注册表
    C++ 注册表操作
    Run-Time Check Failure #3
    完美二叉树, 完全二叉树和完满二叉树学习
    GetModuleFileNameW
    [BJDCTF2020]ZJCTF,不过如此
    picoctf_2018_buffer overflow 1/2
  • 原文地址:https://www.cnblogs.com/codexlx/p/13394084.html
Copyright © 2011-2022 走看看