float 和 double 数被认为包含一个“隐藏的”或隐含的位,从而比不包含该位时的精度高一位。对于 long double,前导位为隐式 (SPARC) 或显式 (x86);该位对于正规数为 1,对于非正规数为 0。
表 F–10 float 表示法
正规数 (0<e<255): |
(-1)s2 (e-127)1. f |
非正规数 (e=0, f!=0): |
(-1)s2 (-126)0. f |
零 (e=0, f=0): |
(-1)s0.0 |
信号 NaN |
s=u,e=255(max);f=.0uuu-uu;至少一个位必须为非零 |
静态 NaN |
s=u,e=255(max);f=.1uuu-uu |
无穷 |
s=u,e=255(max);f=.0000-00(全为零) |
表 F–11 double 表示法
正规数 (0<e<2047): |
(-1)s2 (e-1023)1. f |
非正规数 (e=0, f!=0): |
(-1)s2 (-1022)0. f |
零 (e=0, f=0): |
(-1)s0.0 |
信号 NaN |
s=u,e=2047(max);f=.0uuu-uu;至少一个位必须为非零 |
静态 NaN |
s=u,e=2047(max);f=.1uuu-uu |
无穷 |
s=u,e=2047(max);f=.0000-00(全为零) |
表 F–12 long double 表示法
正规数 (0<e<32767): |
(-1)s2 (e- 16383)1.f |
非正规数 (e=0, f!=0): |
(-1)s2 (-16382)0. f |
零 (e=0, f=0): |
(-1)s0.0 |
信号 NaN |
s=u,e=32767(max);f=.0uuu-uu;至少一个位必须为非零 |
静态 NaN |
s=u,e=32767(max);f=.1uuu-uu |
无穷 |
s=u,e=32767(max);f=.0000-00(全为零) |