关于c#中 float类型的取值范围

我想知道的是它的指数位,占位8bit,怎么算出来它的取值范围是-3.4E38 — +3.4E38 的,还有,前的第31位,是表示它的正负吗?

float的取值范围

float占用4个字节,和int是一样,也就是32bit.

1bit(符号位) 8bits(指数位) 23bits(尾数位)

存储方式如下图:

取值范围基本表达法:

(浮点)数值 = 尾数 × 底数 ^ 指数,(附加正负号)----------------

于是,float的指数范围为-127~128,而double的指数范围为-1023~1024,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。

float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。

其他特殊表示:

1.当指数部分和小数部分全为0时,表示0值,有+0和-0之分(符号位决定),0x00000000表示正0,0x80000000表示负0。
2.指数部分全1,小数部分全0时,表示无穷大,有正无穷和负无穷,0x7f800000表示正无穷,0xff800000表示负无穷。
3.指数部分全1,小数部分不全0时,表示NaN,分为QNaN和SNaN,Java中都是NaN。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-11
float:存储32位还符号浮点值。float变量的值介于±1.5 x 10-45到±3.4 x 1038之间。本回答被提问者采纳
第2个回答  2010-01-11
推荐给你一个网站 他是一个技术性论坛,里面有很多比如程序开发、网络技术等计算机相关学科的文档、教程和所需程序下载,还有很多源代码,也可以在上面与其他人进行交流,只要有不明白的那里一定能解决你的问题,因为百度知道好像不让发网站 我就这样输入把你把下划线去掉后就是网址。w_w_w_._c_s_d_n_._n_e_t_。
第3个回答  2010-01-11
float.MaxValue=3.40282347E+38

float.MinValue=-3.40282347E+38