1.标准
2.分析
名称 长度 比特位置
符号位 Sign (S) : 1bit (b31)
指数部分Exponent (E) : 8bit (b30-b23)
尾数部分Mantissa (M) : 23bit (b22-b0)
其中的指数部分(E)采用的偏置码(biased)的形式来表示正负指数,若E<127则为负的指数,否则为非负的指数。
另外尾数部分M存储的是当把一个浮点数规范化表示后的1.zozooz...(二进制的)形式的zozooz的部分的比特串,共23位.
求值方法: (-1)^S*(1.M)*2^(E-127) (公式1)
注意:%f输出float类型,输出6位小数,有效位数一般为7位;
(2) 双精度(64位)浮点数的结构:名称 长度 比特位置
符号位 Sign (S) : 1bit (b63)
指数部分Exponent (E) : 11bit (b62-b52)
尾数部分Mantissa (M) : 52bit (b51-b0)
双精度的指数部分(E)采用的偏置码为1023
求值方法:(-1)^S*(1.M)*2^(E-1023) (公式2)
注意:双精度数也可用%f格式输出,它的有效位一般为16位,给出小数6位。(这一点在计算金额的时候尤为重要,超过有效位的数字是无意义的,一般会出错。)
举例分析:
float a=7.5, doule a1=7.5 结果解释:
(7.5)10=(111.1)2=1.111*2^2;
以Float在内存中存储:
S=0;
E=(2+127)10=10000001;
M=111;
因篇幅问题不能全部显示,请点此查看更多更全内容