64bit環境におけるデータ型の最大値と最小値の一覧表です。
基本型は<limits.h>ヘッダに定義されています。実数型は<float.h>、幅指定がされた特殊な整数型については<stdint.h>ヘッダで定義されています。
各データ型のサイズについては以下のページを参考にして下さい。
データ型のサイズ・範囲の一覧【32bit/64bit環境】
limits.h
| 定数名 | 値 | 対応する型と意味 |
|---|---|---|
| char型 | ||
| CHAR_BIT | 8 | char ビット幅 |
| CHAR_MAX | 127 | char 最大値(符号無しの場合は 255)※ |
| CHAR_MIN | -128 | char 最小値(符号無しの場合は 0)※ |
| SCHAR_MAX | 127 | signed char 最大値 |
| SCHAR_MIN | -128 | signed char 最小値 |
| UCHAR_MAX | 255 | unsigned char 最大値 |
| short型 | ||
| SHRT_MAX | 32767 | short 最大値 |
| SHRT_MIN | -32768 | short 最小値 |
| USHRT_MAX | 65535 | unsigned short 最大値 |
| int型 | ||
| INT_MAX | 2147483647 | int 最大値 |
| INT_MIN | -2147483648 | int 最小値 |
| UINT_MAX | 4294967295 | unsigned int 最大値 |
| long型(32bit環境、一部の64bit環境(Win64))※ | ||
| LONG_MAX | 2147483647 | long 最大値 |
| LONG_MIN | -2147483648 | long 最小値 |
| ULONG_MAX | 4294967295 | unsigned long 最大値 |
| long型(64bit環境)※ | ||
| LONG_MAX | 9223372036854775807 | long 最大値 |
| LONG_MIN | -9223372036854775808 | long 最小値 |
| ULONG_MAX | 18446744073709551615 | unsigned long 最大値 |
| long long型 ※ | ||
| LLONG_MAX | 9223372036854775807 | long long 最大値 |
| LLONG_MIN | -9223372036854775808 | long long 最小値 |
| ULLONG_MAX | 18446744073709551615 | unsigned long long 最大値 |
一部の16bit/32bit/64bit環境におけるint/long型の最小値と最大値
| 定数名 | 値 | 対応する型 |
|---|---|---|
| int型(16bit環境: I16LP32, IP16L32、32bit環境: LP32) | ||
| INT_MIN | -32768 | int 最小値 |
| INT_MAX | 32767 | int 最大値 |
| UINT_MAX | 65535 | unsigned int 最大値 |
| long型(16bit環境、32bit環境: ILP32, LP32、64bit環境: LLP64) | ||
| LONG_MIN | -2147483648 | long 最小値 |
| LONG_MAX | 2147483647 | long 最大値 |
| ULONG_MAX | 4294967295 | unsigned long 最大値 |
| int型(64bit環境: IP64, ILP64, SILP64) | ||
| INT_MIN | -9223372036854775808 | int 最小値 |
| INT_MAX | 9223372036854775807 | int 最大値 |
| UINT_MAX | 18446744073709551615 | unsigned int 最大値 |
一般的なデータモデル
| データモデル | 備考 |
|---|---|
| LLP64 | 64bit版のWindowsで採用 |
| LP64 | 一般的なUnix/Linux/macOS系のOSが採用 |
| ILP32 | 一般的な32bit環境 |
その他のデータモデルや、各データモデル別のデータサイズについては、以下のページが参考になります。
参考: データモデル別 データサイズ対応表
char型の最小値と最大値について
char型の最小値CHAR_MINと最大値CHAR_MAXは、char型の定義方法によって異なる値に変化する事があります。一般的なコンパイル環境では、符号付きchar型(signed char)の最小値(-128, SCHAR_MIN)と最大値(127, SCHAR_MAX)と同等の値になることがほとんどですが、char型が符号付きのchar型(unsigned char)として定義された環境では、最小値CHAR_MINは0, 最大値CHAR_MAXはUCHAR_MAXと同等の255として定義されます。
#ifdef __CHAR_UNSIGNED__ /* コンパイラフラグ`-funsigned-char`指定時 */
#define CHAR_MIN 0
#define CHAR_MAX UCHAR_MAX
#else
#define CHAR_MIN SCHAR_MIN
#define CHAR_MAX SCHAR_MAX
#endif
char型の符号に関するより詳細な情報については、以下の記事が参考になります。
参考: データ型のサイズ・範囲の一覧表 #char型の符号について
long型の最小値と最大値について
32bit環境や特殊な64bit環境(LLP64(Win64))ではlong/unsigned long型の最大値と最小値がint/unsigned int型と同等のサイズになるため注意してください
# 一部の16bit/32bit/64bit環境におけるint/long型の最小値と最大値
long long型の最小値と最大値について
long long型の最小値と最大値はlong long型のデータサイズに依存します。long long型のデータサイズは処理系依存となるため注意して下さい。
参考: データ型のサイズ・範囲の一覧表 #long long型のサイズについて
float.h
| 定数名 | 値 | 対応する型と意味 | |
|---|---|---|---|
| float型 / double型 / long double | |||
| FLT_MAX | 3.40282e+38 | long 最大値 | |
| FLT_MIN | 1.17549e-38 | long 最小値 | |
| double型 | |||
| DBL_MAX | 1.79769e+308 | double 最大値 | |
| DBL_MIN | 2.22507e-308 | double 最小値 | |
| long double | |||
| LDBL_MAX | 1.18973e+4932 | long double 最大値 | |
| LDBL_MIN | 3.3621e-4932 | long double 最小値 | |
stdint.h
| 定数名 | 値 | 対応する型と意味 |
|---|---|---|
| int8_t型 | ||
| INT8_MAX | 127 | int8_t 最大値 |
| INT8_MIN | -128 | int8_t 最小値 |
| UINT8_MAX | 255 | uint8_t 最大値 |
| int16_t型 | ||
| INT16_MAX | 32767 | int16_t 最大値 |
| INT16_MIN | -32768 | int16_t 最小値 |
| UINT16_MAX | 65535 | uint16_t 最大値 |
| int32_t型 | ||
| INT32_MAX | 2147483647 | int32_t 最大値 |
| INT32_MIN | -2147483648 | int32_t 最小値 |
| UINT32_MAX | 4294967295 | uint32_t 最大値 |
| int64_t型 | ||
| INT64_MAX | 9223372036854775807 | int64_t 最大値 |
| INT64_MIN | -9223372036854775808 | int64_t 最小値 |
| UINT64_MAX | 18446744073709551615 | uint64_t 最大値 |
| wchar_t型 ※ | ||
| WCHAR_MAX | 2147483647 | wchar_t 最大値 |
| WCHAR_MIN | -2147483648 | wchar_t 最小値 |
| intptr_t型 / uintptr_t型 | ||
| INTPTR_MAX | 9223372036854775807 | intptr_t 最大値 |
| INTPTR_MIN | -9223372036854775808 | intptr_t 最小値 |
| UINTPTR_MAX | 18446744073709551615 | uintptr_t 最大値 |
wchar_tの最大値と最小値について
wchar_tの最大値/最小値は環境によって異なるなるため注意してください。Windows環境ではwchar_tは16bit型, Linux/macOS環境では32bit型で表現されていることが多いです。なおwchar_tのサイズ(バイト単位)はsizeof(wchar_t)で求めることができます。