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,相当于右移了四位

  • 相关阅读:
    使用php语言生成二维码
    简单的二级目录 操作
    上传图片 以及做成缩略图
    第一天 :学习node.js
    中文api接口
    PHP中获取当前页面的完整URL
    tp中session用来做权限方法 (缓解mysql压力)
    时间倒计时
    static关键字
    Windows程序内部运行原理简介
  • 原文地址:https://www.cnblogs.com/liuweimingcprogram/p/6745312.html
Copyright © 2011-2022 走看看