C & C++ FAQ
|
|
int型やlong型などの整数型の表現範囲は無限ではなく有限です。すなわち、非常に大きな絶対値をもつような数値を表現することできません。なお、表現できる範囲は、処理系によって異なります。
C,C99およびC++では、各整数型が表現できる最低の値を規定しており、少なくとも、以下の表に示す値を表現することができます。
|
最小値 |
最大値 |
C |
C99 |
C++ |
char |
CHAR_MIN |
0 |
CHAR_MAX |
UCHAR_MAX |
○ |
○ |
○ |
SCHAR_MIN
|
SCHAR_MAX |
signed char |
SCHAR_MIN |
-127
|
SCHAR_MAX |
+127 |
○ |
○ |
○ |
signed short int |
SHRT_MIN |
-32767 |
SHRT_MAX |
+32767 |
○ |
○ |
○ |
signed int |
INT_MIN |
-32767 |
INT_MAX |
+32767
|
○ |
○ |
○ |
signed long int |
LONG_MIN |
-2147483647
|
LONG_MAX |
+2147483647
|
○ |
○ |
○ |
signed long long int |
LLONG_MIN |
-9223372036854775807 |
LLONG_MAX |
+9223372036854775807 |
× |
○ |
× |
unsigned char |
|
0 |
UCHAR_MAX |
255
|
○ |
○ |
○ |
unsigned short int |
|
0 |
USHRT_MAX |
65535 |
○ |
○ |
○ |
unsigned int |
|
0 |
UINT_MAX |
65535 |
○ |
○ |
○ |
unsigned long int |
|
0 |
ULONG_MAX |
4294967295 |
○ |
○ |
○ |
unsigned long long int |
|
0 |
ULLONG_MAX |
18446744073709551615 |
× |
○ |
× |
■ 根拠 ■
標準C
| §5.2.4.2.1
| Sizes of integral types
|
標準C99
| §5.2.4.2.1
| Sizes of integer types
|
標準C++
| §18.2.2
| C Library
|