Type SHORT-FLOAT
, SINGLE-FLOAT
, DOUBLE-FLOAT
, LONG-FLOAT
short-float
: short-float
, float
, real
, number
, t
single-float
: single-float
, float
, real
, number
, t
double-float
: double-float
, float
, real
, number
, t
long-float
: long-float
, float
, real
, number
, t
これら4つの型は、型float
のサブタイプとして定義され、 型short-float
と型long-float
の中間が 型single-float
と型double-float
になります。 これらの分類の精度の定義は実装定義です。 精度(「ビット」として計測されp log 2b
として計算されます)と 指数のサイズ(また「ビット」として計測され log 2(n+1)
、ただしn
は指数値の最大値として計算されます)は、 少なくとも次の表に示される値より大きいことが推奨されます。 型float
のサブタイプとして定義されたそれぞれは、 マイナスゼロがあっても無くてもかまいません。
フォーマット | 最小精度 | 最小指数サイズ |
---|---|---|
short | 13 bit |
5 bit |
single | 24 bit |
8 bit |
double | 50 bit |
8 bit |
long | 50 bit |
8 bit |
Figure 12-12. 推奨される最小の浮動小数の精度と指数サイズ
浮動小数の内部表現は4つより少なくすることができます。 もし表現の区別が少ないときは、 下記の規則を適用してください。
もしひとつしかないとき、それは型single-float
です。 この表現では、オブジェクトは同時に single-float
, double-float
, short-float
, long-float
の型になります。
2つの内部表現のとき、下記に示す方法のどちらかを選択できます。
single-float
とshort-float
が提供されます。 オブジェクトは同時に single-float
, double-float
,long-float
の型になります。single-float
とdouble-float
が提供されます。 オブジェクトは同時にsingle-float
とshort-float
か、 あるいはdouble-float
とlong-float
の型になります。3つの内部表現のとき、下記に示す方法のどちらかを選択できます。
short-float
, single-float
, double-float
が提供されます。 オブジェクトは同時にdouble-float
とlong-float
の型になります。single-float
, double-float
, long-float
が提供されます。 オブジェクトは同時にsingle-float
とshort-float
の型になります。省略可能
short-float
[
short-lower-limit [
short-upper-limit ]
]
single-float
[
single-lower-limit [
single-upper-limit ]
]
double-float
[
double-lower-limit [
double-upper-limit ]
]
long-float
[
long-lower-limit [
long-upper-limit ]
]
short-lower-limit, short-upper-limit - 型short-float
の区間指定子。 short-lower-limitとshort-upper-limitの それぞれのデフォルト値はシンボル*
。
single-lower-limit, single-upper-limit - 型single-float
の区間指定子。 single-lower-limitとsingle-upper-limitの それぞれのデフォルト値はシンボル*
。
double-lower-limit, double-upper-limit - 型double-float
の区間指定子。 double-lower-limitとdouble-upper-limitの それぞれのデフォルト値はシンボル*
。
long-lower-limit, long-upper-limit - 型long-float
の区間指定子。 long-lower-limitとlong-upper-limitの それぞれのデフォルト値はシンボル*
。
それぞれは、指定された型の浮動小数の集合は 区間指定子によって 区間を定義していることを意味しています。