3

intmax_tまたは別の言い方をすれば、%jd浮動小数点数以外に相当するものはありますか?

これはすでにここで副次的な質問として尋ねられていますが、質問が大きすぎて、副次的な質問に答えるのを忘れている人がいると思います。また、それはc ++としてタグ付けされていました.acソリューションを探しています.

関連する質問:

4

2 に答える 2

2

C11 には intmax_t (サポートされる最大幅の整数型) に相当する浮動小数点はありません。将来の C は、ある種の long long double などを定義する必要があります。言語には現在、シームレスなアップグレード パスがありません。

C11 6.11.1.1 「将来の標準化には、long double よりも範囲、精度、またはその両方が大きいものを含む、追加の浮動小数点型が含まれる可能性があります。」あなたが想像するより大きな幅の可能性を示しています。

浮動小数点数の状況は、必要な整数とは異なります。さまざまなプロセッサの幅は年々増加しており (8、16、32、64)、近いうちに 128 になります。全体の浮動小数点サイズ比較的安定しています (4,8,10,16) が、精度、範囲、エンコード、丸めは FP に関する多くの懸念事項を取り上げています。次に、10 進数と 2 進数の浮動小数点仕様が表示されると思います。

もう 1 つの違いは、整数が 1 つの次元 (範囲) で大きくなることです。FP は、基数 (2、10、16 など) の特殊性は言うまでもなく、範囲と精度で独立して成長できます。以下の「IEEE 754」コメントも参照してください。

現在、C11 6.2.5.4 : floatdouble、およびの 3 つがありlong doubleます。互換性のある前方パスを作成したい場合は、 say を使用して変更を準備できますがtypedef long double Xdouble、 のような多くのラッパー関数を記述し、 、 などXdouble sinX(Xdouble x);に多くの同等の定義を準備する必要がある場合があります。小さな努力はありません。DBL_MANT_DIGPRIdN

于 2013-06-19T12:54:17.590 に答える