Oracle Solaris Studio 12.2:C 用户指南

F.2.3 异常值

floatdouble 数被认为包含一个“隐藏的”或隐含的位,从而比不包含该位时的精度高一位。对于 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(全为零)