float和double的精度与范围计算

来源:互联网 发布:淘宝评论图片福利2000 编辑:程序博客网 时间:2024/05/17 22:02

 

符号位

指数位

尾数位

float

1

8

23

double

1

11

52

注:指数位中包含指数位的符号位

 

  •  float的指数位为8位,故指数的范围为(-28~27-1),即(-128~127);
  •  整数部分始终为隐藏的“1”,小数部分为23位,2^24-1=16777216,共8位,但绝对能保证的为7位,故float的精度为7~8位;
  •  float绝对值的最大值为1.111…11e+01111111,即(2-2^(-23) )×2^127≈3.4028e+38
  • 最小值为1.000…00e+10000000,即1×2^(-128)≈0,但并不等于0
  • 同理可得double的精度和范围。
  • 精度:15~16位;
  • 范围(绝对值):0~1.7977e+308。

0 0