C/C++の最値limits.h(climits)とlimitsヘッダファイル


文書ディレクトリ
  • 一、climitsヘッダファイル
  • 1.ヘッダファイル
  • 2.シンボル定数
  • 3.例
  • (1)共通タイプの最大値
  • (2)共通タイプの最小値
  • (3)符号付き
  • 二、limitsヘッダファイル
  • 1.ヘッダファイル
  • 2.フォーマット
  • 3.例
  • (1)よく使われる最大値
  • を簡単に挙げる
  • (2)一般的な最小値
  • を簡単に挙げる.
    一、climitsヘッダファイル
    1.ヘッダファイル
    #include 
    

    または
    #include 
    

    2.符号定数
    共通タイプ最大値のシンボル定数
    表示
    CHAR_MAX
    charの最大値
    SHRT_MAX
    shortの最大値
    INT_MAX
    intの最大値
    LONG_MAX
    longの最大値
    LLONG_MAX
    long longの最大値
    共通タイプの最小値のシンボル定数
    表示
    CHAR_MIN
    charの最小値
    SHRT_MIN
    shortの最小値
    INT_MIN
    intの最小値
    LONG_MIN
    longの最小値
    LLONG_MIN
    long longの最小値
    シンボル付きとシンボルなしのシンボル定数
    表示
    SCHAR_MAX
    singed charの最大値
    SCHAR_MIN
    Signed charの最小値
    UCHAR_MAX
    unsigned charの最大値
    USHRT_MAX
    unsigned shortの最大値
    UINT_MAX
    unsigned intの最大値
    ULONG_MAX
    unsignedの最大値
    ULLONG_MAX
    unsigned longの最大値
  • の一般的なタイプの最小値は、最大値に1を加えて負をとることです.
  • 符号と符号なし:signed charの最大値と最小値はcharの最大値と最小値であり、その他の(符号なし値)は最小値の絶対値と最大値の和である.

  • 3.例
    (1)共通タイプの最大値
    #include 
    #include 		//limits.h
    using namespace std;
    
    int main() {
    	cout << "char: "		<< CHAR_MAX << endl;
    	cout << "short: "		<< SHRT_MAX << endl;
    	cout << "int: "			<< INT_MAX << endl;
    	cout << "long: "		<< LONG_MAX << endl;
    	cout << "long long: "	<< LLONG_MAX << endl;
    	/*
    	char: 127
    	short: 32767
    	int: 2147483647
    	long: 2147483647
    	long long: 9223372036854775807
    	*/
    	return 0;
    }
    

    (2)共通タイプの最小値
    #include 
    #include 				//limits.h
    using namespace std;
    
    int main() {
    	cout << "char: "		<< CHAR_MIN << endl;
    	cout << "short: "		<< SHRT_MIN << endl;
    	cout << "int: "			<< INT_MIN << endl;
    	cout << "long: "		<< LONG_MIN << endl;
    	cout << "long long: "	<< LLONG_MIN << endl;
    	/*
    	char: -128
    	short: -32768
    	int: -2147483648
    	long: -2147483648
    	long long: -9223372036854775808
    	*/
    	return 0;
    }
    

    (3)符号付きと符号なし
    #include 
    #include 				//limits.h
    using namespace std;
    
    int main() {
    	cout << "signed char_max: "		<< SCHAR_MAX << endl;
    	cout << "signed char_min: "		<< SCHAR_MIN << endl;
    	cout << "unsigned char: "		<< UCHAR_MAX << endl;
    	cout << "unsigned short: "		<< USHRT_MAX << endl;
    	cout << "unsigned int: "		<< UINT_MAX << endl;
    	cout << "unsigned long: "		<< ULONG_MAX << endl;
    	cout << "unsigned long long: "	<< ULLONG_MAX << endl;
    	/*
    	signed char_max: 127
    	signed char_min: -128
    	unsigned char: 255
    	unsigned short: 65535
    	unsigned int: 4294967295
    	unsigned long: 4294967295
    	unsigned long long: 18446744073709551615
    	*/
    	return 0;
    }
    

    二、limitsヘッダファイル
    1.ヘッダファイル
    #include 
    

    2.フォーマットnumeric_limits::max() numeric_limits::min()
    3.例
    (1)よく使う最大値を簡単に挙げる
    #include
    #include
    using namespace std;
    
    int main()
    {
    
    	int k = numeric_limits<char>::max();
    	cout << k << endl;
    	//cout << numeric_limits::max() << endl;              
    	//cout << numeric_limits::max()+0 << endl;     127     
    	cout << numeric_limits<short>::max() << endl;
    	cout << numeric_limits<int>::max() << endl;
    	cout << numeric_limits<long>::max() << endl;
    	cout << numeric_limits<long long>::max() << endl;
    	/*
    	32767
    	2147483647
    	2147483647
    	9223372036854775807
    	*/
    
    	cout << numeric_limits<float>::max() << endl;
    	cout << numeric_limits<double>::max() << endl;
    	/*
    	3.40282e+38
    	1.79769e+308
    	*/
    	return 0;
    }
    

    (2)よく使う最小値を簡単に挙げる
    #include
    #include
    using namespace std;
    
    int main()
    {
    
    	int k = numeric_limits<char>::min();
    	cout << k << endl;
    	//cout << numeric_limits::min() << endl;              
    	//cout << numeric_limits::min()+0 << endl;     127     
    	cout << numeric_limits<short>::min() << endl;
    	cout << numeric_limits<int>::min() << endl;
    	cout << numeric_limits<long>::min() << endl;
    	cout << numeric_limits<long long>::min() << endl;
    	/*
    	-128
    	-32768
    	-2147483648
    	-2147483648
    	-9223372036854775808
    	*/
    
    	cout << numeric_limits<float>::min() << endl;
    	cout << numeric_limits<double>::min() << endl;
    	/*
    	1.17549e-38
    	2.22507e-308
    	*/
    	return 0;
    }