Sun Studio 12: C ユーザーズガイド

F.2.3 極値表現

正規化された floatdouble の数は「隠された」ビットまたは暗黙のビットを持つと言われます。それにより、精度を 1 ビット分高めることができます。long double の場合は、先行ビットは暗黙的 (SPARC) または明示的 (x86) のいずれかになります。このビットは正規数に対しては 1、非正規数に対しては 0 になります。

表 F–10 float の表現

正規数 (0<e<255): 

(-1)符号2 (指数部- 127)1.f

非正規数 

(e=0, f!=0): 

(-1)符号2 (-126)0.f

ゼロ (e=0, f=0): 

(-1)符号0.0

シグナルを発生する NaN 

s=u, e=255(最大値); f=.0uuu〜uu (少なくとも 1 ビットは 0 以外) 

シグナルを発生しない NaN 

s=u, e=255(最大値); f=.1uuu〜uu 

無限大 

s=u, e=255(最大値); f=.0000〜00 (すべてが 0) 

表 F–11 double の表現

正規数 (0<e<2047): 

(-1)符号2 (指数部 - 1023)1.f

非正規数 (e=0, f!=0): 

(-1)符号2 (-1022)0.f

ゼロ (e=0, f=0): 

(-1)符号0.0

シグナルを発生する NaN 

s=u, e=2047(最大値); f=.0uuu〜uu (少なくとも 1 ビットは 0 以外) 

シグナルを発生しない NaN 

s=u, e=2047(最大値); f=.1uuu〜uu 

無限大 

s=u, e=2047(最大値); f=.0000〜00 (すべてが 0) 

表 F–12 long double の表現

正規数 (0<e<32767): 

(-1)符号2 (指数部 - 16383)1.f

非正規数 (e=0, f!=0): 

(-1)符号2 (-16382)0.f

ゼロ (e=0, f=0): 

(-1)符号0.0

シグナルを発生する NaN 

s=u, e=32767(符号); f=.0uuu〜uu (少なくとも 1 ビットは 0 以外) 

シグナルを発生しない NaN 

s=u, e=32767(最大値); f=.1uuu〜uu 

無限大 

s=u, e=32767(最大値); f=.0000〜00 (すべてが 0)