ONC+ 開発ガイド

浮動小数点

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

倍精度浮動小数点データの符号化

Graphic

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

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

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