プログラミングコンテストの問題を解いていると、「N
は10の18乗以下」のような制約をよく見る。この制約から、変数N
のデータ型を決めて必要十分なサイズのメモリを確保する。
何乗だったらどのデータ型を使うべきかいつも迷ってしまうので、メモしておく。
データ型 | サイズ | 桁数 |
---|---|---|
int |
32bit | 9 |
int64_t |
64bit | 18 |
long |
32/64bit | 9/18 |
long long |
64bit | 18 |
long
型はWindowsで採用されるLLP64と呼ばれるデータモデルでは32bitで、Linuxで採用されるLP64というデータモデルでは64bitとして扱われる。int64_t
型のようなint??_t
型はサイズが環境に依存しない。C99/C++11から使える。