標準規約では、浮動小数点型 float
(32 ビット、すなわち 4 バイト) を定義しています。符号化方法は、正規化された単精度浮動小数点に関するIEEE 標準規約 [1] に従います。単精度浮動小数点は次の 3 つのフィールドで記述されます。
S: 符号を表す 1 ビットのフィールドです。0 が正、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 標準規約 [1] を参照してください。IEEE 標準規約によると、NaN (not a number) は、システムごとに異なるため外部表現では使用できません。