float、double、long double のデータ要素は、ISO IEEE 754-1985 規格に従って次の式のように表現されます。
(-1)s *2(e - bias) *[j.f]
ここで
s = 符号
e = バイアス付きの指数
j = 先行ビット。e の値によって決まる。long double (x86) では、先行ビットは明示的。そのほかは暗黙的。
f = 仮数部 (23 ビット)
u は、ビットが 0 でも 1 でも良いことを意味します (次の表で使用)。
IEEE Single および Double の場合、j は常に暗黙的です。バイアス付きの指数が 0 の場合、f が 0 でない限り、j は 0 で、結果として生成される数値は非正規数です。バイアス付きの指数が 0 より大きい場合、数値が有限である限り j は 1 です。
Intel 80 ビット拡張の場合、j は常に明示的です。
各ビットの位置は次の表のとおりです。
表 F–6 float の表現
ビット数 |
名 |
---|---|
31 |
符号 |
23- 30 |
バイアス付きの指数 |
0- 22 |
仮数部 |
表 F–7 double の表現
ビット数 |
名 |
---|---|
63 |
符号 |
52- 62 |
バイアス付きの指数 |
0- 51 |
仮数部 |
表 F–8 long double の表現 (SPARC)
ビット数 |
名 |
---|---|
127 |
符号 |
112- 126 |
バイアス付きの指数 |
0- 111 |
仮数部 |
表 F–9 long double の表現 (x86)
ビット数 |
名 |
---|---|
80- 95 |
使用されない |
79 |
符号 |
64- 78 |
バイアス付きの指数 |
63 |
先行ビット |
0- 62 |
仮数部 |
詳細については、『数値計算ガイド』を参照してください。