关于浮点数的一些概念

来源:互联网 发布:java高并发网站架构 编辑:程序博客网 时间:2024/05/29 08:12

今天结合计算机组织与体系结构以及深入理解计算机系统这两本书,又系统地把浮点数给看了一遍。现在系统的把几个要点给总结一下:

1、浮点数的三个域:符号域,指数域和分数域。float和double对应的位数分别为:1,8,23和1,11,52

2、指数域是偏值形式的,也就是真正的指数+偏值才是指数域所表示的值。float和double的偏值分别是127和1023.由于8位和11位指数域对应的无符号数的值的范围分别是(0,255)和(0,2047),而除去特殊数的全0和全1指数域,则真正的指数取值范围分别是(-126,127)和(-1022,1023)

3、根据分数域的位数和隐含的基值1,我们可以推出float和double的分数域的取值范围分别是:(1,2-2^-23)以及相反数的值域。

4、指数域向上,全1的时候,如果分数域全0,那么可表示正无穷大和负无穷大。

指数域向上,全1的时候,如果分数域不全0,则表示NaN

       指数向下,全0的时候,如果分数域全0,那么表示正0和负0

       指数域向下,全0而分数域不为0的时候,表示非规格化数

5、由于2^-126和2^-125之间相差2^-126,而0和2^-126之间也相差2^-126,所以这两个区间的浮点数密集程度是一样的。