標準規約では、浮動小数点型 float
(32 ビット、すなわち 4 バイト) を定義しています。符号化方法は、正規化された単精度浮動小数点に関するIEEE 標準規約 [1] に従います。単精度浮動小数点は次の 3 つのフィールドで記述されます。
S: 数値の符号を表します。値 0 は正、1 は負を表します。 このフィールドには 1 ビットが入ります。
E: 数値の指数部 (基数は 2) を表します。このフィールドには 8 ビットが入ります。指数部の値を 127 だけバイアスした値が入っています。
F: 数値の仮数部 (基数は 2) を表します。このフィールドには 23 ビットが入ります。
したがって、浮動小数点型の値は次のように記述されます。
(-1)**S * 2**(E-Bias) * 1.F
単精度浮動小数点データは次のように宣言します。
float identifier;
倍精度浮動小数点データは次のように宣言します。
double identifier;
整数の最上位バイトと最下位バイトがバイト 0 とバイト 3 であるのと同様に、倍精度浮動小数点型の値の最上位ビットと最下位ビットはビット 0 とビット 63 になります。S、E、F の各フィールドの開始ビット、最上位ビット、オフセットはそれぞれ 0、1、12 になります。
これらのオフセットは論理的ビット位置を示すもので、物理的位置を示すものではありません。物理的位置は媒体によって異なります。
符号付きゼロ、符号付き無限大 (オーバーフロー)、正規化されない値 (アンダーフロー) の符号化については、IEEE 標準規約を参照してください。IEEE 標準規約によると、NaN (not a number) は、システムごとに異なるため外部表現では使用できません。