C の数値限界インタフェース
提供: cppreference.com
std::numeric_limits インタフェースも参照してください。
ヘッダ <cstdint> で定義 | |
PTRDIFF_MIN (C++11) | std::ptrdiff_t 型のオブジェクトの最小値 (マクロ定数) |
PTRDIFF_MAX (C++11) | std::ptrdiff_t 型のオブジェクトの最大値 (マクロ定数) |
SIZE_MAX (C++11) | std::size_t 型のオブジェクトの最大値 (マクロ定数) |
SIG_ATOMIC_MIN (C++11) | std::sig_atomic_t 型のオブジェクトの最小値 (マクロ定数) |
SIG_ATOMIC_MAX (C++11) | std::sig_atomic_t 型のオブジェクトの最大値 (マクロ定数) |
WCHAR_MIN (C++11) | wchar_t 型のオブジェクトの最小値 (マクロ定数) |
WCHAR_MAX (C++11) | wchar_t 型のオブジェクトの最大値 (マクロ定数) |
WINT_MIN (C++11) | std::wint_t 型のオブジェクトの最小値 (マクロ定数) |
WINT_MAX (C++11) | std::wint_t 型のオブジェクトの最大値 (マクロ定数) |
[編集]整数型の限界
ヘッダ <climits> で定義 | |
CHAR_BIT | 1バイトのビット数 (マクロ定数) |
MB_LEN_MAX | マルチバイト文字1文字の最大バイト数 (マクロ定数) |
CHAR_MIN | char の最小値 (マクロ定数) |
CHAR_MAX | char の最大値 (マクロ定数) |
SCHAR_MINSHRT_MININT_MINLONG_MINLLONG_MIN (C++11) | signedchar, short, int, long, longlong の最小値 (マクロ定数) |
SCHAR_MAXSHRT_MAXINT_MAXLONG_MAXLLONG_MAX (C++11) | signedchar, short, int, long, longlong の最大値 (マクロ定数) |
UCHAR_MAXUSHRT_MAXUINT_MAXULONG_MAXULLONG_MAX (C++11) | unsignedchar, unsignedshort, unsignedint, unsignedlong, unsignedlonglong の最大値 (マクロ定数) |
ノート: CHAR_BIT
と MB_LEN_MAX
以外のこれらの定数の型は、その記述する型のオブジェクトに整数拡張が適用された結果に一致することが要求されます。 CHAR_MAX
は int または unsignedint かもしれませんが、 char であることはありません。 同様に、 USHRT_MAX
は符号なし型ではないかもしれず、 int であるかもしれません。
[編集]浮動小数点型の限界
ヘッダ <cfloat> で定義 | |
FLT_RADIX | 3種類の浮動小数点型すべてを表現するために使用される基数 (マクロ定数) |
DECIMAL_DIG (C++11) | longdouble から10進数に変換し、再び longdouble に戻した時に元の値と等しくなるために最低限必要な、その10進数の桁数。 これは longdouble をシリアライズ、デシリアライズするために必要な10進数の精度です (std::numeric_limits::max_digits10 も参照してください)。 (マクロ定数) |
FLT_DECIMAL_DIGDBL_DECIMAL_DIGLDBL_DECIMAL_DIG (C++17) | float, double, longdouble から10進数に変換し、再び元の型に戻した時に元の値と等しくなるために最低限必要な、その10進数の桁数。 これは浮動小数点値をシリアライズ、デシリアライズするために必要な精度です。 (std::numeric_limits::max_digits10 も参照してください)。 それぞれ少なくとも 6, 10, 10 以上の値に定義されます。 IEEE float の場合は 9、 IEEE double の場合は 17 です (マクロ定数) |
FLT_MIN_10_EXPDBL_MIN_10_EXPLDBL_MIN_10_EXP | float, double, longdouble において 10 の n-1 乗が正規化数であるような最も小さな負の整数 n (マクロ定数) |
FLT_TRUE_MINDBL_TRUE_MINLDBL_TRUE_MIN (C++17) | float, double, longdouble の最も小さな正の値 (マクロ定数) |
FLT_MAXDBL_MAXLDBL_MAX | float, double, longdouble の最も大きな有限値 (マクロ定数) |
FLT_EPSILONDBL_EPSILONLDBL_EPSILON | float, double, longdouble における 1.0 とその次の表現可能な値の差 (マクロ定数) |
FLT_DIGDBL_DIGLDBL_DIG | 文字列から float, double, longdouble に変換し、再び文字列に戻したときに丸めやオーバーフローによる変化を起こさず維持されることが保証される10進数の桁数 (詳細は std::numeric_limits::digits10 を参照してください) (マクロ定数) |
FLT_MANT_DIGDBL_MANT_DIGLDBL_MANT_DIG | float, double, longdouble において精度を失わずに表現できる FLT_RADIX 進数の桁数 (マクロ定数) |
FLT_MIN_EXPDBL_MIN_EXPLDBL_MIN_EXP | float, double, longdouble において FLT_RADIX の n-1 乗が正規化数であるような最も小さな負の整数 n (マクロ定数) |
FLT_MIN_10_EXPDBL_MIN_10_EXPLDBL_MIN_10_EXP | float, double, longdouble において 10 の n-1 乗が正規化数であるような最も小さな負の整数 n (マクロ定数) |
FLT_MAX_EXPDBL_MAX_EXPLDBL_MAX_EXP | FLT_RADIX の n-1 乗が float、 double、 longdouble で表現可能な有限の値であるような最も大きな正の整数 n (マクロ定数) |
FLT_MAX_10_EXPDBL_MAX_10_EXPLDBL_MAX_10_EXP | 10 の n-1 乗が float、 double、 longdouble で表現可能な有限の値であるような最も大きな正の整数 n (マクロ定数) |
浮動小数点算術のデフォルトの丸めモード (マクロ定数) | |
(C++11) | すべての算術演算がどの精度で行われるかを表します (マクロ定数) |
FLT_HAS_SUBNORMDBL_HAS_SUBNORMLDBL_HAS_SUBNORM (C++17) | 型が非正規化数をサポートするかどうかを表します。 -1(不明)、0(なし)、1(あり) (マクロ定数) |
[編集]関連項目
数値の限界 の C言語リファレンス |