C语言:关于实型精确度和取值范围的计算方法

来源:互联网 发布:海岛奇兵潜艇升级数据 编辑:程序博客网 时间:2024/05/01 17:00

实型存储分为三部分:符号部分,小数部分和阶数部分。其中小数部分表示精确程度,阶数部分表示大小。

单精度规定用8位二进制表示阶数,即最大表示为2的128次方,把这个数算出来是3.4028236692093846346337460743177e+38
双精度规定用11位二进制表示阶数,即最大表示为2的1024次方,结果是1.797693134862315907729305190789e+308


float的有效数字是6~7位,double的有效数字是15~16位:算法如下

单精度8位阶码,1位符号,剩下23位尾数,算出2的负23次方,得到0.00000011920928955078125
前面0有多少个,就表示能精确到那一位
双精度11位阶码,1位符号,剩下52位尾数,算出2的负52次方,得到0.00000000000000022204460492503130808472633361816
前面0有多少个,就表示能精确到那一位


0 0