1. ホーム
  2. c

[解決済み] Cにおけるデータ型の最小値と最大値

2023-06-22 02:27:18

質問

C言語でデータ型(int, charなど)の値の最小値と最大値を決定する関数は何ですか?

どのように解決するのですか?

あなたが使用したいのは limits.h で、以下の定数を提供します (リンク先のリファレンスにあるとおりです)。

SCHAR_MIN      : minimum value for a signed char
SCHAR_MAX      : maximum value for a signed char
UCHAR_MAX      : maximum value for an unsigned char
CHAR_MIN       : minimum value for a char
CHAR_MAX       : maximum value for a char
SHRT_MIN       : minimum value for a short
SHRT_MAX       : maximum value for a short
USHRT_MAX      : maximum value for an unsigned short
INT_MIN        : minimum value for an int
INT_MAX        : maximum value for an int
UINT_MAX       : maximum value for an unsigned int
LONG_MIN       : minimum value for a long
LONG_MAX       : maximum value for a long
ULONG_MAX      : maximum value for an unsigned long
LLONG_MIN      : minimum value for a long long
LLONG_MAX      : maximum value for a long long
ULLONG_MAX     : maximum value for an unsigned long long
PTRDIFF_MIN    : minimum value of ptrdiff_t
PTRDIFF_MAX    : maximum value of ptrdiff_t
SIZE_MAX       : maximum value of size_t
SIG_ATOMIC_MIN : minimum value of sig_atomic_t
SIG_ATOMIC_MAX : maximum value of sig_atomic_t
WINT_MIN       : minimum value of wint_t
WINT_MAX       : maximum value of wint_t
WCHAR_MIN      : minimum value of wchar_t
WCHAR_MAX      : maximum value of wchar_t
CHAR_BIT       : number of bits in a char
MB_LEN_MAX     : maximum length of a multibyte character in bytes

ここで U*_MIN は明らかな理由で省略されています(どんな符号なし型でも、最小値は 0 ).

同様に float.h に対する制限を提供します。 floatdouble の型があります。

FLT_MIN    : smallest normalised positive value of a float
FLT_MAX    : largest positive finite value of a float
DBL_MIN    : smallest normalised positive value of a double
DBL_MAX    : largest positive finite value of a double
LDBL_MIN   : smallest normalised positive value of a long double
LDBL_MAX   : largest positive finite value of a long double
FLT_DIG    : the number of decimal digits guaranteed to be preserved converting from text to float and back to text
DBL_DIG    : the number of decimal digits guaranteed to be preserved converting from text to double and back to text
LDBL_DIG   : the number of decimal digits guaranteed to be preserved converting from text to long double and back to text

浮動小数点型は 0 を中心に対称なので、最も負の数の有限値は最も正の数の有限値の否定となります。 float から -FLT_MAX から FLT_MAX .

浮動小数点型は、その範囲内で少数の有限の値しか正確に表すことができないことに注意してください。 格納される絶対値が大きくなるにつれて、正確に表現できる隣接する数値の間隔も大きくなります。