ONC+ 開発ガイド

浮動小数点

説明

標準規約では、浮動小数点型 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; 

符号化

倍精度浮動小数点

Graphic

整数の最上位バイトと最下位バイトがバイト 0 とバイト 3 であるのと同様に、倍精度浮動小数点型の値の最上位ビットと最下位ビットはビット 0 とビット 63 になります。S、E、F の各フィールドの開始ビット (最上位ビット) のオフセットはそれぞれ 0、1、12 になります。

これらのオフセットは論理的ビット位置を示すもので、物理的位置を示すものではありません (物理的位置は媒体によって異なります)。

符号付きゼロ、符号付き無限大 (オーバフロー)、正規化されない値 (アンダフロー) の符号化については、IEEE 標準規約 [1] を参照してください。IEEE 標準規約によると、NaN (not a number) は、システムごとに異なるため外部表現では使用できません。