zoukankan      html  css  js  c++  java
  • 关于float和double类型能表示的数据范围和精度分析

     来自教材《计算机组成原理》p16

    float:6--7位

    double:15--16位

    意思就是double类型的数据,你确实能表达出很大的数字,但是其只有15位是精确的。

    1、计算机中,因为需要计算电子的质量9*10^(-28)g和太阳的质量2*10^(33)g这样的大数据,需要引入一种新的方式来存取数据。

    ps:一开始的方式只有定点数的表示方法,只能存纯小数或则纯整数,范围只有2^n

    2、把32位的空间(float)分割成3部分,S、E、M表示符号位、阶码、尾数,分别分配1位、8位、23位

    其中阶码代表数值的范围,尾数代表数值的精度。

    阶码:8位,不用符号位,因为用了阶码的形式存取,也就是本来要表示-127---127的指数,我把他们同时加上127,那么新的数值就是0---254,这个时候,每次读取完后,真实值就是x = E - 127,基准数base = 2,也就是底数 = 2

    尾数:用来存取浮点数,因为任何一个数都能表示成2^e.M的形式,这里就是存取M,所以尾数能表达多少,有效位就是多少

    3、小数的标准形式:1.xxxx,

    4、二进制运算:111.01011 * 2^4 = 1110101.1,相当于右移了四位

  • 相关阅读:
    iOS 关于NSNotificationCenter
    IOS UITableView reload 刷新某一个cell 或 section
    IOS AFNetWorking 设置超时时间
    IOS AFNetWorking
    IOS 十六进制字符串转换成UIColor
    IOS 长姿势---双击Home键
    IOS 关于 NSUserDefault
    方正璞华培训讲师
    localStorage使用总结
    Promise的简单用法
  • 原文地址:https://www.cnblogs.com/liuweimingcprogram/p/6745312.html
Copyright © 2011-2022 走看看