備忘録 @ ウィキ
仕様
最終更新:
mlnk
-
view
整数型の範囲
符号 | 型 | 接尾語 | バイト数 | 最小値 | 最大値 | 大まかな目安 | |
signed | char | なし | 1バイト | -128 | 127 | ||
unsigned | u、U | 0 | 255 | ||||
signed | short | なし | 2バイト | -32,768 | 32,767 | ±2^15 | ±3*10^4 |
unsigned | u、U | 0 | 65,535 | 2^16 | 6*10^4 | ||
signed | int | なし | 4バイト | -2,147,483,648 | 2,147,483,647 | ±2^31 | ±2*10^9 |
unsigned | u、U | 0 | 4,294,967,295 | 2^32 | 4*10^9 | ||
signed | long | l、L | 4バイト | -2,147,483,648 | 2,147,483,647 | ±2^31 | ±2*10^9 |
unsigned | ul、UL | 0 | 4,294,967,295 | 2^32 | 4*10^9 | ||
signed | long long | ll、LL | 8バイト | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 | ±2^63 | ±9*10^18 |
unsigned | ull、ULL | 0 | 18,446,744,073,709,551,615 | 2^64 | 1*10^19 |
注
接尾語なしの数値はint型になるので、int以上の符号付型の最小値を直接指定することはできない。
なので例えば符号付int型の最小値は次のように指定しなければならない。
もっとも、最近のコンパイラは優秀だから大丈夫だったり。
int ng = -2147483648; // 間違い: -(2147483648)と認識されるため、桁あふれが生じる
int ok = -2147483647 - 1; // OK