C语言中的float类型一般是占用32位,其中8位用于指数(阶符和阶码)表示,剩余32位用于尾数(包括尾符和尾码)

因为阶码占用7位,所以范围是-128~127

尾码占用23位,所以有2^23=8388608种组合,8388608有7位,但是不到9999999种组合,所以至少能保证6位有效数字,最多可表示7位。

假设尾码全是1,那么这时为码的数值最大,接下来我们算一下最大值是多少:

 

 

 根据计算可知,23位全是1的时候,数值为0.999999999,我们学过极限的同学都知道0.999999就是等于1。

前面说过阶码的补码范围是-128~127。最大指数就是2^128=3.4E+38

所以float最大能表示数字为1*3.4E+38

那么符号变一下,最小数字为1*-3.4E-38

综合一下float范围不就是-3.4E-38~3.4E+38

更多推荐

关于C语言float类型范围的理解