2

Cの浮動小数点型の下限はありますか? 整数型 (int は少なくとも 16 ビット) に下限があるように?

4

7 に答える 7

3

はい。 float.h次のような定数が含まれます。

FLT_EPSILON, DBL_EPSILON, LDBL_EPSILONfloatこれは、 、double、および表現で表すことができる最小の大きさのゼロ以外の値long doubleです。

FLT_MAXFLT_MINは、 で表すことができる極端な正数と負数を表しfloatます。類似DBL_LDBL_もございます。

FLT_DIG, DBL_DIG, LDBL_DIG10 進数の桁数の精度として定義されます。

xxx_MINまたは値のいずれかを求めていxxx_EPSILONます。

これらの線に沿って、64ビットIEEE-754浮動小数点数の内部を表示するコードを投稿した質問があります。

于 2009-11-11T09:11:09.763 に答える
3

厳格で根拠のあること:

ISO/IEC 9899:TC2: (WG14/N1124m 2005 年 5 月 6 日) :

5.2.4.2.2、浮動小数点型の特徴 <float.h>

于 2009-11-11T09:18:29.593 に答える
2

float.hFLT_MIN浮動小数点型 (およびを含むDBL_MIN) のさまざまなプロパティを記述する多くのマクロが含まれています。

制限の要件の説明はfloat.h、標準 (C90 または C99 - 5.2.4.2.2「浮動型の特性」) に記載されています。

1E-37特に、標準によれば、実装は少なくともforfloatまたはの下限をサポートする必要がありdoubleます。しかし、実装はそれよりも自由に行うことができます (そして、 と で何をするかを示しますFLT_MIN) DBL_MIN

標準文書が必要な場合に、標準文書のコピーをどこで入手できるかについては、この質問を参照してください。

于 2009-11-11T09:10:33.080 に答える
1

たぶんこれが役立ちます:float.h参照(C ++です。プレーンCにも当てはまるかどうかはわかりません)

于 2009-11-11T09:09:05.930 に答える
1

このドラフト C99 標準 (PDF) では、セクション 5.2.4.2.2 に浮動小数点型の精度の最小値が記載されています。

(ウィキペディアの C99 で見つかりました。)

于 2009-11-11T09:18:48.143 に答える
0

ここで役立つリファレンスは、すべてのコンピューター科学者が浮動小数点演算について知っておくべきことです。

浮動小数点数の性質 (サイズ、精度、制限) は、プログラミング言語ではなく、ハードウェアによって実際に定義されます。x86 の単精度浮動小数点数は、C、C#、Java、およびその他の実用的なプログラミング言語と同じです。(例外は、ソフトウェアで奇数幅の浮動小数点数を実装する難解なプログラミング言語です。)

于 2009-11-11T10:04:55.173 に答える
0

標準ドラフトからの抜粋 (n1401.pdf)

                                      附属書 F
                                    (規範)
                       IEC 60559 浮動小数点演算
    F.1 はじめに
1 ... _ _STDC_IEC_559_ _ を定義する実装は、以下に準拠しなければならない
    この附属書の仕様。...

    F.2 タイプ
1 C 浮動小数点型は、次のように IEC 60559 形式と一致します。
    -- float 型は IEC 60559 シングル形式と一致します。
    -- double 型は、IEC 60559 double 形式に一致します。
    -- long double 型は、IEC 60559 拡張形式に一致します ...

ウィキペディアには、興味深いと思われる IEC 559 (または IEEE 754-1985) に関する記事があります。

于 2009-11-11T16:51:55.593 に答える